Ответ
Нет, ORM — это лишь одна из возможных реализаций спецификации JPA. JPA определяет API, но не диктует способ реализации доступа к данным.
Варианты реализации JPA:
-
ORM (Hibernate, EclipseLink): Наиболее распространённый вариант. Автоматизирует объектно-реляционное отображение.
@Entity public class User { @Id private Long id; private String name; } // Hibernate выполнит маппинг и SQL User user = em.find(User.class, 1L); -
JDBC (без ORM): Вы можете реализовать репозитории, соответствующие JPA-спецификации (интерфейсы
EntityManager), но с "ручным" выполнением SQL через JDBC для полного контроля. -
Другие провайдеры: Существуют реализации JPA для NoSQL баз данных (например, DataNucleus, Hibernate OGM).
Критерии выбора:
- Выберите ORM (Hibernate) для сложных доменных моделей с наследованием, связями, когда нужна декларативная работа (аннотации) и кеширование.
- Рассмотрите чистый JDBC или "тонкие" обёртки (JdbcTemplate, JOOQ) для высокопроизводительных пакетных операций, сложных аналитических запросов или работы с легаси-схемами, не соответствующими объектной модели.