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 может управлять несколькими объектами.