JPA permite consultar las entidades empleando los siguientes mecanismos:
- JPQL (JPA QL)
- SQL
- Criteria API
En las siguientes secciones se demuestran las mismas consultas empleando los tres mecanismos de consulta y se incluyen al final del artículo referencias que le permitirán profundizar en los detalles de estos lenguajes.
JPQL (JPA QL)
Este lenguaje de consulta, similar a SQL, permite realizar búsquedas de manera independiente al esquema de la BD relacional; es decir, las consultas se realizan sobre el modelo de datos (las propiedades y relaciones) definido por las entidades.
En el siguiente vídeo se demuestran las capacidades de este lenguaje.
SQL
Aunque JPA abre la posibilidad de consultar datos empleados consultas SQL, se recomienda evitar esta estrategia lo más que se pueda y emplearla sólo cuando sea absolutamente necesaria; por ejemplo, para mejorar el desempeño o cuando cierto requerimiento demanda funcionalidad específica del sistema gestor de base de datos, ya que con este mecanismo se consulta sobre las tablas de la base de datos. Emplear características exclusivas de un producto crea dependencias entre la aplicación y el sistema gestor de base de datos, algo que justamente se trata de evitar cuando se emplea JPQL en lugar de SQL. En el siguiente vídeo se demuestran el uso de este enfoque de consulta en JPA:
Criteria API
El Criteria API de JPA permite definir consultas empleando interfaces y objetos en lugar de texto. En el siguiente vídeo se demuestran el uso de este enfoque para la creación de consultas de entidades JPA:
Las siguientes imágenes resumen algunas de las equivalencias entre JPQL y Criteria API
Cláusulas
Operadores
Funciones de Agregación
Funciones JPQL
Referencias
[3] Creación de consultas dinámicas en JPA sin SQL (ni JPQL)
Comments are closed.