SCBCD: Apuntes tácticos 2

(Imagen: Paul Gauguin - El espírito de la muerte observa)


  • 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?

Reply

Publicar un comentario