Tecnologia

Páginas: 6 (1445 palabras) Publicado: 10 de octubre de 2012
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

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

Las Query permiten encadenamiento de métodos

nov-08

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ámetrosEnlace 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

Ajustes de rendimiento

nov-08Alberto 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 MFA alb@uniovi.es

15

Partes de una consultaSelecció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 SELECT

Tabla Criterios de selección de filas

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

Curso 2005-2006SID2-GAP

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.Object o select s from java.io.Serializable s
nov-08 Alberto MFA alb@uniovi.esTambié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-08Alberto 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 los elementos proyectados (Item y Bid)

nov-08

Alberto MFA alb@uniovi.es

25

Proyección de escalaresEn 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 2005-2006 SID2-GAP 27

Joins: inner, left y right outer

Todos los Items con sus Bids

Los Items que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tecnologia
  • Tecnología
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS