Como eu poderia fazer o mesmo que essa derived query faz usando JPQL?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Como eu poderia fazer o mesmo que essa derived query faz usando JPQL?
Olá Constanze! Tudo bem com você?
Para replicar a funcionalidade de uma derived query usando JPQL, você pode escrever uma consulta JPQL que alcance o mesmo resultado. No seu caso, a derived query findTop5ByOrderByEpisodiosDataLancamentoDesc() está buscando os cinco episódios mais recentes, ordenados pela data de lançamento em ordem decrescente.
Para fazer isso com JPQL, você pode criar uma query similar a esta:
@Query("SELECT s FROM Serie s JOIN s.episodios e ORDER BY e.dataLancamento DESC")
List<Serie> findTop5ByOrderByEpisodiosDataLancamentoDescJPQL(Pageable pageable);
Note que estamos usando JOIN para acessar a lista de episódios dentro da entidade Serie, e ordenando pela dataLancamento dos episódios. Para limitar o resultado aos cinco primeiros, você pode usar o Pageable como argumento do método e passar um objeto PageRequest ao chamar o método, como mostrado abaixo:
Pageable pageable = PageRequest.of(0, 5);
List<Serie> series = serieRepository.findTop5ByOrderByEpisodiosDataLancamentoDescJPQL(pageable);
Espero ter ajudado e bons estudos!