Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

impresión de toda la información de la serie en top 5 de capítulos.

A la hora de imprimir los resultados del "buscartop5Episodios()", se imprime primero todos los datos de la serie de la cual estoy analizando, y cuando digo todos, son todos los capítulos de todas las temporadas, pero al final se imprime el top 5 de capítulos.

2 respuestas

¡Hola Juan, espero que estés bien!

Entiendo que estás teniendo un problema al imprimir la información de la serie en el top 5 de capítulos. Parece que estás obteniendo toda la información de la serie, incluyendo todos los capítulos de todas las temporadas, antes de imprimir el top 5 de capítulos.

Basándome en el contexto que proporcionaste, parece que el problema puede estar en la consulta que estás realizando. Es posible que la consulta esté trayendo más información de la necesaria antes de filtrar los resultados para mostrar solo el top 5 de capítulos.

Para resolver este problema, te recomendaría revisar la consulta que estás utilizando para buscar el top 5 de episodios. Asegúrate de que la consulta esté seleccionando solo la información necesaria para mostrar los 5 episodios principales, sin traer toda la información de la serie y sus capítulos.

Si estás utilizando Spring Data JPA, puedes revisar la anotación @Query y la consulta que estás definiendo en el repositorio para asegurarte de que esté filtrando los datos de manera efectiva.

Además, podría mostrarme tu código por favor?

Espero que esta sugerencia te ayude a resolver el problema. Si necesitas más ayuda con la consulta o con cualquier otro aspecto, no dudes en preguntar.

Espero haber ayudado y buenos estudios!

Es como si tomara los datos de la tabla episodios, pero solo estoy llamando a la tabla series:

public interface SerieRepository extends JpaRepository<Serie,Long> {

Optional<Serie> findByTituloContainsIgnoreCase(String nombreSerie);


List<Serie> findTop5ByOrderByEvaluacionDesc();
List<Serie> findByGenero(Categoria categoria);
@Query("SELECT s FROM Serie s WHERE s.totalTemporadas <= :totalTemporadas AND s.evaluacion >= :evaluacion")
List<Serie> seriesPorTemporadaYEvaluacion(int totalTemporadas, Double evaluacion);
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE e.titulo ILIKE %:nombreEpisodio%")
List<Episodio> episodiosPorNombre(String nombreEpisodio);
@Query("SELECT e FROM Serie s JOIN s.episodios e WHERE s = :serie ORDER BY e.evaluacion DESC LIMIT 5 ")
List<Episodio>top5Episodios(Serie serie);

}

private void buscarTop5Episodios(){ buscarSeriesPorTitulo(); if (serieBuscada.isPresent()){ Serie serie = serieBuscada.get(); ListtopEpisodios = repositorio.top5Episodios(serie); topEpisodios.forEach(e-> System.out.printf("Serie: %s - Temporada %s - Titulo %s - Episodio %s - Evaluacion %s\n", e.getSerie().getTitulo(), e.getTemporada(),e.getTitulo(), e.getNumeroEpisodio(),e.getEvaluacion())); } }