Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

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

1 respuesta

Hola David,

Gracias por compartir tu código con nosotros. Es muy bueno ver cómo vas poniendo en práctica lo que aprendes.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tus soluciones y proyectos, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!