Arquitectura JPA (Java Persistence API)

La persistencia de datos es la posibilidad de mantener los datos entre ejecuciones de la aplicación. La persistencia es vital en las aplicaciones empresariales debido a la necesidad de acceder a bases de datos relacionales. Las aplicaciones desarrolladas para este entorno deben gestionar ellas mismas la persistencia o utilizar soluciones de terceros para manejar las actualizaciones y recuperaciones de las bases de datos con persistencia. La Java™ Persistence API (JPA) proporciona un mecanismo para gestionar la persistencia y la correlación relacional de objetos y las funciones para las especificaciones EJB.

La especificación JPA define la correlación relacional de objetos internamente, en lugar de basarse en implementaciones de correlación específicas del proveedor. JPA se basa en el modelo de programación Java que se aplica a los entornos Java EE, pero JPA puede funcionar dentro de un entorno Java SE para probar funciones de la aplicación.

JPA representa una simplificación del modelo de programación de persistencia. La especificación JPA define explícitamente la correlación relacional de objetos, en lugar de basarse en implementaciones de correlación específicas del proveedor. JPA crea un estándar para la importante tarea de la correlación relacional de objetos mediante la utilización de anotaciones o XML para correlacionar objetos con una o más tablas de una base de datos. Para simplificar aún más el modelo de programación de persistencia:
  • La API EntityManager puede persistir, actualizar, recuperar o eliminar objetos de una base de datos
  • La API EntityManager y los metadatos de correlación relacional de objetos manejan la mayoría de las operaciones de base de datos sin que sea necesario que se escriba código JDBC o SQL para mantener la persistencia
  • JPA proporciona un lenguaje de consulta, ampliando el lenguaje de consulta EJB independiente (también denominado JPQL), que se puede utilizar para recuperar objetos sin escribir consultas SQL específicas de la base de datos con la que está trabajando.

JPA está diseñado para funcionar dentro y fuera de un contenedor Java Enterprise Edition (Java EE). Cuando se ejecuta JPA dentro de un contenedor, las aplicaciones pueden utilizar el contenedor para gestionar el contexto de persistencia. Si no ha ningún contenedor para gestionar JPA, la aplicación debe manejar ella misma la gestión del contexto de persistencia. Las aplicaciones diseñadas para la persistencia gestionada por contenedor no requieren tanta implementación de código para manejar la persistencia, pero estas aplicaciones no se pueden utilizar fuera de un contenedor. Las aplicaciones que gestionan su propia persistencia pueden funcionar en un entorno de contenedor o en un entorno Java SE.

Los contenedores Java EE que dan soporte al modelo de programación de EJB 3.x deben dar soporte a la implementación de JPA, denominada también proveedor de persistencia. Un proveedor de persistencia JPA utiliza los elementos siguientes para permitir una gestión más fácil de la persistencia en un entorno EJB 3.x:
Unidad de persistencia
Consta de los metadatos de declaración que describen la relación de los objetos de clase de entidad con una base de datos relacional. EntityManagerFactory utiliza estos datos para crear un contexto de persistencia al que se puede acceder mediante EntityManager.
EntityManagerFactory
Se utiliza para crear un EntityManager para las interacciones de base de datos. Los contenedores del servidor de aplicaciones normalmente proporcionan esta función, pero es necesario EntityManagerFactory si se utiliza la persistencia gestionada por las aplicaciones JPA. Una instancia de un EntityManagerFactory representa un contexto de persistencia.
Contexto de persistencia
Define el conjunto de las instancias activas que la aplicación está manipulando actualmente. El contexto de persistencia se puede crear manualmente o mediante inyección.
EntityManager
Gestor de recursos que mantiene la colección activa de objetos de entidad que está utilizando la aplicación. EntityManager maneja la interacción y metadatos de bases de datos para las correlaciones relacionales de objetos. Una instancia de un EntityManager representa un contexto de persistencia. Una aplicación en un contenedor puede obtener el EntityManager mediante inyección en la aplicación o buscándolo en el espacio de nombres del componente Java. Si la aplicación gestiona su persistencia, el EntityManager se obtiene desde EntityManagerFactory.
Atención: Sólo se da soporte a la inyección del EntityManager para los artefactos siguientes:
  • Beans de sesión EJB 3.x
  • Beans controlados por mensajes EJB 3.x
  • Servlets, filtros de servlet y escuchas
  • Manejadores de distintivos JSP que implementan interfaces javax.servlet. jsp.tagext.Tag y javax.servlet.jsp.tagext.SimpleTag
  • Beans gestionados JSF (JavaServer Faces)
  • La clase principal del cliente de aplicaciones.
Objetos de entidad
Clase Java simple que representa una fila en una tabla de base de datos con su formato más sencillo. Los objetos de entidades pueden ser clases concretas o clases abstractas. Mantienen estados mediante la utilización de propiedades o campos.

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_persistence
File name: cejb_persistence.html