JPA - Архитектура
Java Persistence API - это источник для хранения бизнес-сущностей как реляционных сущностей. В нем показано, как определить ОБЫЧНЫЙ СТАРЫЙ ОБЪЕКТ JAVA (POJO) как сущность и как управлять сущностями с отношениями.
Архитектура уровня класса
На следующем изображении показана архитектура уровня класса JPA. Он показывает основные классы и интерфейсы JPA.
 
                В следующей таблице описан каждый из модулей, показанных в вышеупомянутой архитектуре.
| Единицы | Описание | 
|---|---|
| EntityManagerFactory | Это фабричный класс EntityManager. Он создает и управляет несколькими экземплярами EntityManager. | 
| EntityManager | Это интерфейс, он управляет операциями сохранения объектов. Он работает как factory для экземпляра Query. | 
| Entity | Сущности - это объекты постоянства, которые хранятся как записи в базе данных. | 
| EntityTransaction | Он имеет однозначные отношения с EntityManager. Для каждого EntityManager операции обслуживаются классом EntityTransaction. | 
| Persistence | Этот класс содержит статические методы для получения экземпляра EntityManagerFactory. | 
| Query | Этот интерфейс реализуется каждым поставщиком JPA для получения реляционных объектов, соответствующих критериям. | 
Вышеупомянутые классы и интерфейсы используются для хранения сущностей в базе данных в виде записи. Они помогают программистам, сокращая их усилия по написанию кодов для хранения данных в базе данных, чтобы они могли сосредоточиться на более важных действиях, таких как написание кодов для сопоставления классов с таблицами базы данных.
Отношения классов JPA
В вышеупомянутой архитектуре отношения между классами и интерфейсами принадлежат пакету javax.persistence. На следующей диаграмме показаны отношения между ними.
 
                - Связь между EntityManagerFactory и EntityManager является one-to-many. Это фабричный класс для экземпляров EntityManager. 
- Связь между EntityManager и EntityTransaction: one-to-one. Для каждой операции EntityManager существует экземпляр EntityTransaction. 
- Связь между EntityManager и Query one-to-many. С помощью одного экземпляра EntityManager можно выполнить большое количество запросов. 
- Связь между EntityManager и Entity one-to-many. Один экземпляр EntityManager может управлять несколькими объектами.