JPA PERSISTENCIA

Páginas: 6 (1382 palabras) Publicado: 18 de octubre de 2014
Consultas en JPA-QL
Sistemas de Persistencia de
Objetos

Contenidos

nov-08

Alberto MFA alb@uniovi.es

2

Preparación y ejecución

nov-08

Alberto MFA alb@uniovi.es

3

Creación
HQL y JPA QL

QBC y QBE

(Query By Criteria)

SQL Directo
nov-08

Alberto MFA alb@uniovi.es

4

Paginación

El primer resultado es el 0

Las Query permiten
encadenamiento demétodos

nov-08

Número máximo de filas a
recuperar desde la fijada por
setFirstResult()
Ejecuta la consulta y
devuelve una List()
de objetos User

Alberto MFA alb@uniovi.es

5

Enlace de parámetros
Lo que no se debe hacer
¿Qué hay en este
string?

¿Qué pasa si
escriben esto en
un formulario?

Es el problema de la SQL injection
nov-08

Alberto MFA alb@uniovi.es

6 Enlace de parámetros
Enlace nominal (recomendado)

setParameter() sobrecargado para
java.util.Date, java.util.Calendar y
Object (ver documentación)

nov-08

Alberto MFA alb@uniovi.es

7

Enlace de parámetros
Enlace posicional
El orden de parámetros
no tiene por qué ser
secuencial

¡Ojo! Se empieza en 1
setters
sobrecargados
nov-08

Alberto MFA alb@uniovi.es

8

Ajustesde rendimiento

nov-08

Alberto MFA alb@uniovi.es

9

Ajustes de rendimiento

Los “hints” son todos dependientes de
implementación, no estándar JPA
Si un hint no es soportado es ignorado
silenciosamente
nov-08

Alberto MFA alb@uniovi.es

10

Hints: ejemplos

nov-08

Alberto MFA alb@uniovi.es

11

Ejecución
Se produce al invocar a:
getResultList()
getSingleResult()Excepción si más
de uno o ninguno

Así ya no… pero puede
no haber ninguno

nov-08

Alberto MFA alb@uniovi.es

12

Consultas con nombre
Se carga el string de la consulta desde
mapeos
createNamedQuery(…)

Query con anotaciones o en orm.xml

nov-08

Alberto MFA alb@uniovi.es

13

nov-08

Alberto MFA alb@uniovi.es

14

Consultas básicas

nov-08

Alberto MFAalb@uniovi.es

15

Partes de una consulta
Selección
Fuente de datos
FROM
Una sola o combinación de ellas

Restricción
Filtrado de filas

WHERE

Proyección
Selección de partes de las filas que pasan
el filtro
SELECT
nov-08

Alberto MFA alb@uniovi.es

16

Partes de una consulta
FROM

WHERE

Resultados

Tabla
Criterios de
selección de filas

Curso 2005-2006SELECT

SID2-GAP

Puede que haya
menos filas
(WHERE) y puede
que menos campos
(SELECT)

17

Selección (FROM)
SELECT en JPA QL, no necesario en HQL
select i from Item i

Alias necesarios para condiciones sobre
miembros
select i from Item as i
select i from Item i

Las consultas son polimórficas

¡Sube toda la BDD!

select b from BillingDetail b
select o from java.lang.Objecto
select s from java.io.Serializable s
nov-08

Alberto MFA alb@uniovi.es

También
polimorfismo sobre
18
interfaces

Restricción (WHERE)
WHERE para filtrar filas

nov-08

Alberto MFA alb@uniovi.es

19

Restricción (WHERE)

nov-08

Alberto MFA alb@uniovi.es

20

Operadores de comparación y
precedencia
_

+
nov-08

Alberto MFA alb@uniovi.es

21 Restricciones sobre
colecciones (WHERE)
En el WHERE
Se pueden complementar con funciones

nov-08

Alberto MFA alb@uniovi.es

22

JPA

Funciones
Hibernate

nov-08

Alberto MFA alb@uniovi.es

23

Ordenación
De la forma usual

nov-08

Alberto MFA alb@uniovi.es

24

Proyección
(Esta consulta es inútil ya
que da un producto
cartesiano)

Cada fila es un vector de loselementos proyectados (Item y Bid)

nov-08

Alberto MFA alb@uniovi.es

25

Proyección de escalares

En la select pueden ir
atributos de clases…
… y resultados de funciones
(las ya vistas)

nov-08

Alberto MFA alb@uniovi.es

26

Consulta sobre varias tablas

+

Tabla

Criterios de filtrado
de filas

Resultados

Combinación de registros de las
dos tablas
Tabla
Curso...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Jpa Java Persistencia
  • La Persistencia
  • guia jpa
  • La Persistencia de la Memoria
  • la persistencia de mexico
  • el poder de la persistencia
  • La persistencia de la memoria
  • La Persistencia De La Memoria

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS