JPA - Arquitectura
La API de persistencia de Java es una fuente para almacenar entidades comerciales como entidades relacionales. Muestra cómo definir un OBJETO JAVA ANTIGUO PLANO (POJO) como una entidad y cómo gestionar entidades con relaciones.
Arquitectura de nivel de clase
La siguiente imagen muestra la arquitectura de nivel de clase de JPA. Muestra las clases principales e interfaces de JPA.
La siguiente tabla describe cada una de las unidades que se muestran en la arquitectura anterior.
Unidades | Descripción |
---|---|
EntityManagerFactory | Esta es una clase de fábrica de EntityManager. Crea y administra múltiples instancias de EntityManager. |
EntityManager | Es una interfaz, gestiona las operaciones de persistencia en los objetos. Funciona como fábrica para la instancia de consulta. |
Entity | Las entidades son los objetos de persistencia que se almacenan como registros en la base de datos. |
EntityTransaction | Tiene una relación de uno a uno con EntityManager. Para cada EntityManager, las operaciones se mantienen mediante la clase EntityTransaction. |
Persistence | Esta clase contiene métodos estáticos para obtener la instancia de EntityManagerFactory. |
Query | Cada proveedor de JPA implementa esta interfaz para obtener objetos relacionales que cumplan con los criterios. |
Las clases e interfaces anteriores se utilizan para almacenar entidades en una base de datos como un registro. Ayudan a los programadores reduciendo sus esfuerzos para escribir códigos para almacenar datos en una base de datos para que puedan concentrarse en actividades más importantes, como escribir códigos para mapear las clases con tablas de la base de datos.
Relaciones de clase JPA
En la arquitectura anterior, las relaciones entre las clases y las interfaces pertenecen al paquete javax.persistence. El siguiente diagrama muestra la relación entre ellos.
La relación entre EntityManagerFactory y EntityManager es one-to-many. Es una clase de fábrica para las instancias de EntityManager.
La relación entre EntityManager y EntityTransaction es one-to-one. Para cada operación de EntityManager, hay una instancia de EntityTransaction.
La relación entre EntityManager y Query es one-to-many. Se pueden ejecutar muchas consultas utilizando una instancia de EntityManager.
La relación entre EntityManager y Entity es one-to-many. Una instancia de EntityManager puede administrar varias Entidades.