El propósito de acceso para entidades EJB 2.x es la sustitución en la especificación EJB 2.x para los propósitos de acceso de EJB 1.x y los niveles de aislamiento de EJB 1.x.
Hay dos métodos generales para añadir el propósito de acceso a beans de empresa 2.x:
- Propósito de acceso por omisión (nivel de bean): este método por omisión para gestionar el
propósito de acceso según el nivel de bean debe utilizarse en la mayoría de los casos.
- Propósito de acceso a nivel de método: este método avanzado para gestionar el propósito de acceso
según los métodos sólo debería utilizarse en situaciones avanzadas.
Para añadir el propósito de acceso por omisión (nivel de bean) a un bean de empresa
2.x:
- Cambie a la perspectiva J2EE.
- En la vista Explorador de proyectos, pulse Proyectos EJB > proyecto > ejbModule > META-INF > ejb-jar.xml. Se abrirá la ventana Descriptor de despliegue de EJB.
- En la página Acceso del editor, seleccione
uno o más beans, bajo la sección Propósito de acceso por omisión para entidades
2.x (nivel de bean), pulse el botón Añadir.
Se abrirá el asistente Añadir propósito de acceso.
- En el campo Nombre de propósito de acceso, seleccione el tipo
de propósito de acceso de la lista desplegable.
- Opcional: escriba una descripción para el nuevo propósito de acceso.
- Para establecer la persistencia, active el recuadro de selección Opción de persistencia. Tiene tres opciones de persistencia:
- Si activa el recuadro de selección Verificar datos sólo de lectura,
utilice la lista desplegable para seleccionar una opción para la comprobación de coherencia de lectura a lectura.
Tiene tres opciones:
- NONE, no se realizará ninguna comprobación de lectura a lectura.
- AT_TRAN_BEGIN, durante ejbLoad, si los datos proceden de antememoria, compruebe
la base de datos para asegurarse de que los datos del bean no hayan cambiado desde la última
carga (con el bloqueo adecuado según el atributo de control de concurrencia del propósito de acceso).
- AT_TRAN_END, al final de la transacción, si el bean no ha cambiado y la transacción
actual no lo ha cargado, compruebe la base de datos para asegurarse de que los
datos del bean no hayan cambiado desde la última carga (con el bloqueo adecuado
según el atributo de control de concurrencia del propósito de acceso). Si los datos han cambiado, la transacción
falla.
Si desea obtener ejemplos sobre la comprobación de coherencia de lectura a lectura, consulte el apartado Ejemplos: comprobación de coherencia de lectura a lectura.
- Si activa el recuadro de selección Operación parcial, utilice la lista desplegable para
seleccionar una opción para la operación parcial. Tiene dos
opciones:
- NONE, se trata del valor por omisión, donde todos los
atributos persistentes del bean CMP en la base de datos se almacenan en
la base de datos, aún cuando podría haber cambiado un subconjunto
de campos de atributos persistentes.
- UPDATE_ONLY, limita las actualizaciones en la base de datos a
únicamente atributos persistentes del bean CMP que se han modificado.
Para obtener más detalles sobre la operación parcial, consulte el apartado Operación parcial de persistencia gestionada por contenedor.
- Si activa el recuadro de selección Operación diferida, utilice la lista desplegable para
seleccionar una opción para la operación diferida. Tiene tres opciones:
- NONE, no se difiere nada.
- CREATE_ONLY, sólo se difieren los mandatos ejbCreate hasta que tiene lugar el siguiente ejbStore para crear una fila en la base de datos.
- ALL, todos los mandatos ejbCreate, ejbStore y ejbRemove se difieren hasta que se
necesita un vaciado, que es antes de un método finder o antes de la
finalización de una transacción.
Para obtener más información sobre la operación diferida, consulte el apartado Creación diferida para persistencia gestionada por contenedor.
- La operación por lotes utiliza el mandato de proceso por lotes de JDBC para insertar,
actualizar o suprimir filas en el proceso de fondo de la base de datos con el
que este bean de empresa concreto está conectado. Para obtener más información sobre la operación de proceso por lotes, consulte el apartado Mandatos por lotes para persistencia gestionada por contenedor. Para seleccionar la operación de proceso por lotes:
- En Operación diferida, seleccione ALL .
(Debe seleccionar All para utilizar la opción de proceso por lotes).
- Seleccione el recuadro Proceso por lotes.
- Pulse Finalizar.
Se añadirá el propósito de acceso. Para eliminar el propósito de acceso, selecciónelo y pulse
el botón Eliminar.