Hola buenas tardes, hice esas tres configuraciones y funciono.
Hola buenas tardes, hice esas tres configuraciones y funciono.
Hola Miguel,
¡Qué bueno que las configuraciones funcionaron! Parece que has implementado correctamente la funcionalidad para obtener el top 5 de episodios de una serie. Aquí tienes un resumen de lo que has hecho:
Consulta en el Repositorio: Has definido una consulta en el repositorio para obtener los episodios de una serie, ordenados por evaluación de manera descendente, y limitados a 5 resultados.
@Query("SELECT e FROM Episodio e WHERE e.serie.id = :id ORDER BY e.evaluacion DESC LIMIT 5")
List<Episodio> top5Episodios(Long id);
Servicio para Transformar Datos: En el servicio, transformas los episodios obtenidos en objetos EpisodioDTO
, que probablemente es una clase que contiene solo la información necesaria para el cliente.
public List<EpisodioDTO> top5Episodio(Long id) {
List<Episodio> episodios = repository.top5Episodios(id);
return episodios.stream()
.map(e -> new EpisodioDTO(e.getTemporada(), e.getTitulo(), e.getNumeroEpisodio()))
.collect(Collectors.toList());
}
Controlador para Exponer el Endpoint: Has configurado un endpoint en el controlador para que el cliente pueda acceder a esta información.
@GetMapping("/{id}/temporadas/top")
public List<EpisodioDTO> top5Episodio(@PathVariable Long id) {
return servicio.top5Episodio(id);
}
Todo parece estar en orden. Si tienes alguna pregunta específica o necesitas más ayuda, no dudes en preguntar.
Espero haber ayudado y buenos estudios!