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

Haz como yo hice

JPQL es un lenguaje de consulta utilizado en JPA para consultar entidades Java, no tablas directamente.
A diferencia de SQL, en JPQL se usan clases y atributos del modelo, no nombres de tablas o columnas.

Por ejemplo:

SQL tradicional:

SELECT * FROM series WHERE titulo = 'Breaking Bad';

JPQL:

SELECT s FROM Serie s WHERE s.titulo = 'Breaking Bad'

Aquí:

Serie es la entidad

s es un alias

s.titulo es un atributo de la clase

Documentación oficial:
https://jakarta.ee/specifications/persistence/3.1/jakarta-persistence-spec-3.1.html

Ejemplo en SerieRepository

Para usar JPQL en Spring Data JPA, utilizamos la anotación @Query.

Buscar serie por título ignorando mayúsculas
@Query("SELECT s FROM Serie s WHERE LOWER(s.titulo) = LOWER(:titulo)")
Optional buscarSeriePorTitulo(String titulo);

Esto permite buscar:

"Breaking Bad"

"breaking bad"

"BREAKING BAD"

Buscar series por género
@Query("SELECT s FROM Serie s WHERE s.genero LIKE %:genero%")
List buscarPorGenero(String genero);

Ejemplo:

repositorio.buscarPorGenero("Drama");
Buscar series con evaluación mínima
@Query("SELECT s FROM Serie s WHERE s.evaluacion >= :nota")
List buscarPorEvaluacion(Double nota);
Buscar las mejores series
@Query("SELECT s FROM Serie s ORDER BY s.evaluacion DESC")
List buscarMejoresSeries();
Buscar series con pocas temporadas
@Query("SELECT s FROM Serie s WHERE s.totalTemporadas <= :temporadas")
List buscarSeriesCortas(Integer temporadas);
Ejemplo de uso en la aplicación
System.out.println("Series con evaluación mayor a 8:");

repositorio.buscarPorEvaluacion(8.0)
.forEach(System.out::println);
Ventajas de JPQL

consultas más complejas

control total sobre la consulta

permite joins entre entidades

funciona directamente con objetos Java

Ejemplo avanzado con relación Serie–Episodio
@Query("SELECT e FROM Episodio e WHERE e.serie.titulo = :titulo")
List buscarEpisodiosPorSerie(String titulo);

Esto consulta episodios usando la relación:

Serie 1 ---- * Episodio
Resumen

JPQL permite:

consultar entidades Java

usar parámetros (:param)

hacer filtros (WHERE)

ordenar (ORDER BY)

usar funciones (LOWER, UPPER)

trabajar con relaciones entre entidades