Ответ
JPA (Java Persistence API) — это стандартная спецификация Java для ORM (Object-Relational Mapping). Hibernate — самая популярная реализация этой спецификации.
Основные концепции и пример:
-
Маппинг сущности: Класс Java аннотируется для отображения на таблицу БД.
@Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "username", nullable = false) private String username; // Геттеры и сеттеры } -
Работа с EntityManager: Выполнение операций CRUD.
// Создание EntityManager (обычно инжектится через Spring) EntityManager em = entityManagerFactory.createEntityManager(); em.getTransaction().begin(); User user = new User(); user.setUsername("JohnDoe"); em.persist(user); // Сохранение (INSERT) em.getTransaction().commit(); User foundUser = em.find(User.class, 1L); // Поиск по ID (SELECT)
Почему Hibernate?
- Стандарт (JPA): Позволяет сменить провайдера (например, на EclipseLink).
- Продуктивность: Автоматизирует рутинный SQL.
- Дополнительные возможности Hibernate: HQL, Criteria API, кэширование 1-го и 2-го уровня, расширенные типы данных.
Конфигурация задается в persistence.xml или в Spring Boot через application.properties (например, spring.jpa.hibernate.ddl-auto=update).