SPRING-SOURCE.RU

Что такое JPA?

JPA – это технология, обеспечивающая объектно-реляционное отображение простых JAVA объектов и предоставляющая API для сохранения, получения и управления такими объектами.

JPA – это спецификация (документ, утвержденный как стандарт, описывающий все аспекты технологии), часть EJB3 спецификации.

Сам JPA не умеет ни сохранять, ни управлять объектами, JPA только определяет правила игры: как что-то будет действовать. JPA также определяет интерфейсы, которые должны будут быть реализованы провайдерами. Плюс к этому JPA определяет правила о том, как должны описываться метаданные отображения и о том, как должны работать провайдеры. Дальше, каждый провайдер, реализуя JPA определяет получение, сохранение и управление объектами. У каждого провайдера реализация разная.

Реализации

У JPA существуют разные реализации:

EJB описывает объекты, как они должны сохраняться в базу – там это очень сложно. А hibernate как ORM реализация завоевала очень большую популярность. JPA – это в основном идеи hibernate и JDO.

Структура JPA

Состоит из трех основных пунктов:

  1. API – интерфейсы в пакете javax.persistance
    Набор интерфейсов, которые позволяют организовать взаимодействие с ORM провайдером.
  2. JPQL – объектный язык запросов.
    Очень поход на SQL, но запросы выполняются к объектам.
  3. Metadata – аннотации над объектами.
    Набор аннотаций, которыми мы описываем метаданные отображения. Тогда уже JPA знает какой объект в какую таблицу нужно сохранить. Метаданные можно описывать двумя способами: XML файл можно через аннотации.