Ответ
Java Persistence API (JPA) — это стандартная спецификация Java EE/ Jakarta EE для Object-Relational Mapping (ORM), которая описывает, как управлять реляционными данными в Java-приложениях с помощью объектов.
Основная цель: Абстрагировать разработчика от написания нативного SQL и ручного маппинга результатов запросов на объекты.
Ключевые концепции и компоненты:
- Entity: Обычный Java-класс (POJO), помеченный аннотацией
@Entity, который отображается на таблицу БД. - EntityManager: Центральный интерфейс для операций с жизненным циклом сущностей (CRUD).
- JPQL (Java Persistence Query Language): Объектно-ориентированный язык запросов.
- Persistence Unit: Конфигурация, определяемая в
persistence.xml, которая связывает сущности, источник данных и свойства провайдера.
Пример сущности и базовой операции:
import javax.persistence.*;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// Конструкторы, геттеры, сеттеры
}
// Использование EntityManager
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
User newUser = new User();
newUser.setName("Alice");
em.persist(newUser); // Сохраняет объект в БД
User foundUser = em.find(User.class, 1L); // Поиск по первичному ключу
em.getTransaction().commit();
em.close();
Популярные реализации: Hibernate, EclipseLink, Apache OpenJPA. JPA упрощает разработку, обеспечивает переносимость кода между разными СУБД и реализациями ORM.