sábado, 17 de julio de 2010

Contexto de persistencia extendido

Cuando inyectamos un contexto de persistencia extendido con @PersistenceContext(type = EXTENDED) en primera instancia estamos indicando que el ciclo de vida del contexto de persistencia y del EntityManager están ligados al ciclo de vida del bean en el que lo injectamos y no de la transacción activa en el momento de la llamada a un método de negocio. Esto afecta a las operaciones sobre entidades de la siguiente manera:

En un contexto de persistencia EXTENDIDA, todas las operaciones de sólo lectura del EntityManager pueden ejecutarse al margen de una transacción (find (), getReference (), refresh (), y consultas de lectura). Algunas operaciones de modificaciones pueden ejecutarse al margen de una transacción, pero se ponen en cola hasta que el contexto persistencia se une a una transacción: este es el caso de persist (), merge (), remove (). Algunas operaciones no pueden ser llamadas fuera de una transacción: flush (), lock (), y consultas de eliminación de tipo update/delete.

1 comentario:

  1. Saludos de otro Raúl Tinoco....xDDD
    Ya somos 3 en España, los que yo he encontrado...xDDD
    El otro es Arquitecto, y yo fotográfo y Diseñador Gráfico, aparte de estar metidos en otros proyectos. Solo pasaba para saludar.

    ResponderEliminar