SerieController:
@GetMapping("/{id}/temporadas/top")
public List<EpisodioDTO> obterTop5Episodios(@PathVariable Long id) {
return servico.obterTop5Episodios(id);
}
SerieService:
public List<EpisodioDTO> obterTop5Episodios(Long id) {
return repositorio.topEpisodiosPorSerie(id)
.stream()
.map(e -> new EpisodioDTO(e.getTemporada(),e.getTitulo(),e.getNumeroEpisodio()))
.collect(Collectors.toList());
}
SerieRepository:
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE s.id = :id ORDER BY e.avaliacao DESC LIMIT 5")
List<Episodio> topEpisodiosPorSerie(Long id);
Solucionei o desafio assim