JPA - Clase 3
JPA - Clase 3
JPA - Clase 3
com/technetwork/middleware/ias/toplink-jpa-
annotations-096251.html
• State may be “fetched
fetched”” as EAGER or LAZY
• LAZY – El contenedor difiere la carga hasta que el
campo o la colección es accesado
• EAGER – requiere que el campo o la relación sea
cargado cuando la entidad referenciadada es
cargada..
cargada
• CASCADA de operacioens entre entidades
relacionadas
• Se puede establecer cuando define la relación
• Configurable globalmente en archivo de mapeo
“Cascading” es utilizado para propagar el
efecto de una operación en todas las
entidades relacionadas
◦ Cascade = PERSIST
◦ Cascade = REMOVE
◦ Cascade = MERGE
◦ Cascade = REFRESH
◦ Cascade = ALL
Lenguaje de consulta, delete y update que
opera sobre entities
Similar a SQL pero no está orientado al
mundo relacional (tablas y columnas) sino al
mundo de objetos (entities y atributos)
Permite independizarse de la base de datos y
del esquema relacional
Permite la utilización de queries nativos en
SQL
• getResultList() – ejecuta un query y returna multiples
getResultList()
resultados
• getSingleResult()
getSingleResult () – ejecuta un query que retorna un único
resultado
• executeUpdate()
executeUpdate () – ejecuta un bulk update o delete
• setFirstResult()
setFirstResult () – establece el primer resultado a retornar
• setMaxResults()
setMaxResults () – establece el máximo numero de
resultados a devolver
• setParameter()
setParameter () – asocia un valor al parametro con nombre
o en el parametro de la posicion indicada
• setHint()
setHint () – aplica un consejo especifico del proveedor de
persistencia
• setFlushMode()
setFlushMode () – aplica el modo flush al query cuanto este
se ejecuta
ejecuta..
EntityManager provee el método find para localizar
entities, de la forma:
Buscando por pk
final Alumno a = em.find(Alumno.class,
alumnoregistrado.getId());
Porque no funciona este query?
Alumno a = em.find(Alumno.class, -42);
Busqueda con parametros
final List<Alumno> list = em.createQuery( "from Alumno where
nombre = ?1").setParameter(1, “Adalberto") .getResultList();