- Un EntityManager está asociado a un contexto de persistencia, dentro del cúal existe un grupo de instancias administradas.
- El grupo de instancias administradas por un EntityManager está definido por una Persistence Unit
- El método merge sólamente funciona dentro de una transacción
- El método find devuelve null si la instancia buscada no existe
- El método getReference lanza EntityNotFoundException si la instancia buscada no existe
- El método contains devuelve "true" si la entidad es parte del contexto de persistencia.
- El método flush requiere de una transacción para funcionar, caso contrario se lanza TransactionRequiredException
- Existen dos tipos de modo de flush (configurables mediante setFlushModeType): AUTO y COMMIT
- El método clear termina el contexto de persistencia, y todas las entidades pasan a ser no administradas
- Los siguientes métodos de EntityManager requieren una transacción: persist, merge, refresh y remove
- Los métodos callback del ciclo de vida en entidaes pueden ser especificados en la misma clase, una superclase o una clase entity-listener aparte
- Estos métodos se pueden especificar con las anotaciones @PrePersist, @PostPersist, @PreRemove, @PostRemove, @PreUpdate, @PostUpdate y @PostLoad
- Los entity listeners por defecto son especificados para todas las entidades de una persistence unit
- Se puede especificar muchso entity listeners para una clase entidad o una superclase y el orden de invocación es el orden en el que están especificados en la metadata.
- LOs métodos callback del ciclo de vida tienen la siguiente firma: void methodname() cuando son definidos en clase entidad o en su superclase.
- Si son definidos en una clase Entity Listener aparte, la firma de los métodos es la siguiente: void methodname(Object), donde Object es el objeto sobre el que se realiza la operación.
- Para definir entity-listeners para una entidad se usa la anotación @EntityListeners. Dicha anotación toma como input un arrglo.
- El método getInvokedBusinessInterface sólo es accesible desde métodos de negocio o interceptores de métodos de negocio.
- Los beans stateless con BMT pueden acceder a getUserTransaction en todos sus métodos, pero no tienen acceso a setRollbackOnly y getRollbackOnly
Basado en las notas de Raghavendra Balgi
2 comments
Hola que tal, tebgo algunas dudas sobre JPA, me podrias ayudar?
ReplyEncantado :D!
ReplyPublicar un comentario