Foi incluido no código as seguintes partes:
na SerieController:
@GetMapping("/{id}/temporadas/top")
public List<EpisodiosDTO> obterTopEpisodios(@PathVariable Long id){
return servico.obterTopEpisodios(id);
}
SerieService:
public List<EpisodiosDTO> obterTopEpisodios(Long id) {
var serie = repositorio.findById(id)
.orElseThrow(() -> new EntityNotFoundException("Série não encontrada"));
return repositorio.topEpisodiosPorSerie(serie)
.stream()
.map(e -> new EpisodiosDTO(e.getTemporada(), e.getNumeroEpisodio(), e.getTitulo()))
.collect(Collectors.toList());
}
SerieRepository:
@Query("SELECT e FROM Serie s " + "JOIN s.episodios e " + "ORDER BY e.avaliacao DESC LIMIT 5")
List<Episodios> obterTopEpisodios(Long id);