Acceder a datos mediante JPA dentro del paquete

Acerca de esta tarea

Para el acceso a datos mediante JPA dentro del paquete, se asume que se trabaja en un paquete que se trata como módulo Java™ EE en el servidor. Por ejemplo, un paquete de aplicación web OSGi que tiene una faceta JPA habilitada y contiene entidades y la lógica para acceder, consumir y visualizar datos mediante JPA. Otro ejemplo puede ser un proyecto web que contenga entidades JPA y la lógica para consumir datos utilizando JPA que se publican en una aplicación OSGi en lugar de publicarse como parte de un despliegue de EAR.

Debe configurar el paquete OSGi y añadir los orígenes de datos a WebSphere Application Server antes de acceder a las unidades de persistencia JPA.

Consejo:

Asegúrese de que el archivo de persistencia JPA contiene referencias a un origen de datos JTA (Java Transaction API) y no JTA.

JPA tiene dos patrones transacciones para acceder a un origen de datos:
jta-data-source
El patrón de recursos Java Transaction API (JTA) depende de transacciones globales. El patrón de recursos JTA se utiliza generalmente dentro del ámbito de una sesión de Enterprise JavaBeans (EJB). Esta configuración permite al bean de sesión controlar contextos de transacción y de seguridad mientras JPA gestiona las correlaciones de persistencia. En este caso, la aplicación no utiliza la interfaz EntityTransaction sino que se basa en el EntityManager que figura en la transacción global cuando se accede al mismo.
non-jta-data-source
El patrón de recursos no JTA se utiliza para tratar un recurso individual en ausencia de transacciones globales. El patrón de recurso que no es de JTA se utiliza generalmente dentro del ámbito de una aplicación Web o un cliente de aplicaciones. La aplicación controla la transacción con el origen de datos mediante la interfaz EntityTransaction.

En los archivos persistence.xml para una aplicación OSGi, los elementos jta-data-source y non-jta-data-source acceden a orígenes de datos a través de una búsqueda JNDI (Java Naming and Directory Interface), una búsqueda JNDI en el registro del servicio o a través de Blueprint.

Si los orígenes de datos JTA y no JTA no están configurados en el archivo persistence.xml, se utilizan los orígenes de datos JTA y no JTA predeterminados configurados para el servidor. De forma predeterminada, los valores son nulos. Algunas características de entidad JPA requieren que se especifique un origen de datos que no sea JTA. Por ejemplo, la generación automática de identidades de entidades.

Procedimiento

  1. Añada orígenes de datos que no sean JTA a persistence.xml:
    1. Abra el archivo persistence.xml en el editor.
    2. En la sección Visión general, seleccione en la lista de componentes su entidad para visualizar los detalles de la misma.
    3. En el campo Origen de datos no JTA, especifique el nombre JNDI global de un origen de datos no JTA. Por ejemplo, osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/blogdbnojta).
  2. Añada orígenes de datos JTA a persistence.xml:
    1. Abra el archivo persistence.xml en el editor.
    2. En la sección Visión general, seleccione en la lista de componentes su entidad para visualizar los detalles de la misma.
    3. En el campo Origen de datos JTA, especifique el nombre JNDI global de un origen de datos JTA. Por ejemplo, osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/blogdb).
  3. Añada un proveedor JDBC a la consola administrativa de WebSphere Application Server:
    1. Vaya a la vista Servidores.
    2. Pulse con el botón derecho del ratón en la instancia de servidor y seleccione Iniciar.
    3. Pulse con el botón derecho del ratón en la instancia de servidor y seleccione Administración > Ejecutar consola administrativa para abrir la consola administrativa.
    4. Pulse Recursos > JDBC > Proveedores de JDBC.
    5. Pulse Nuevo en la página de proveedores JDBC. Se abre el asistente Crear un origen de datos.
    6. Siga las instrucciones del asistente para crear el proveedor JDBC.
    7. Guarde los cambios.
  4. Añada definiciones de origen de datos a la consola administrativa de WebSphere Application Server:
    1. En la consola administrativa, pulse Recursos > JDBC > Orígenes de datos para abrir la página Orígenes de datos en la consola.
    2. En la página Orígenes de datos, pulse Nuevo para crear una definición de origen de datos con un nombre JNDI establecido en la definición de conexión JTA especificada en el archivo persistence.xml. Por ejemplo, jdbc/blogdb.
    3. En la página Orígenes de datos, pulse Nuevo para crear otra definición de origen de datos con un nombre JNDI establecido en la definición de conexión no JTA especificada en el archivo persistence.xml. Por ejemplo, jdbc/blogdbnojta.
    4. Cuando se cree el origen de datos para la conexión no JTA, pulse en la definición para la conexión no JTA en la página Orígenes de datos de la consola administrativa. Se abre la página Configuración.
    5. En la sección Propiedades adicionales, pulse Propiedades de origen de datos de WebSphere Application Server.
    6. Seleccione Origen de datos no transaccional. En el servidor de aplicaciones, el uso del elemento <non-jta-data-source> requiere una configuración especial para un origen de datos no transaccional. Los orígenes de datos que se configuran para el servidor de aplicaciones no funcionan como <non-jta-data-source> porque todos los orígenes de datos que configura el servidor de aplicaciones se incluyen automáticamente con el contexto transaccional actual. Para evitar esta inclusión automática, añada una propiedad personalizada de origen de datos nonTransactionalDataSource=true.

Resultados

El archivo persistence.xml y WebSphere Application Server se configuran para acceder a JPA en un paquete OSGi.
Icono que indica el tipo de tema Tema de tarea
Términos y condiciones para centros de información | Comentarios

Icono de indicación de fecha y hora Última actualización: 22 de abril de 2014

Nombre de archivo: taccessjpainbundle.html