Java Persistence API

Jakarta Persistence API (JPA; ранее Java Persistence API) — спецификация API Jakarta EE, предоставляет возможность сохранять в удобном виде Java-объекты в базе данных[1].

Существует несколько реализаций этого интерфейса, одна из самых популярных использует для этого Hibernate. JPA реализует концепцию ORM.

Поддержка сохранности данных, предоставляемая JPA, покрывает области:

* непосредственно API, заданный в пакете `javax.persistence`;
* платформо-независимый объектно-ориентированный язык запросов Java Persistence Query Language;
* метаинформация, описывающая связи между объектами;
* Генерация DDL для сущностей.

## Содержание

* 1 История
* 2 Entity
* 3 См. также
* 4 Примечания
* 5 Ссылки

## История

[править | править код]

Java Persistence API был определён в процессе работы экспертной группы над JSR 220[2]. Первая версия JPA была выпущена 11 мая 2006 года. JPA 2.0 был описан экспертной группой в JSR 317[3], спецификация была выпущена 10 декабря 2009 года. Спецификация JPA 2.1 была выпущена 22 апреля 2013 года (для платформы Java EE 7 требуется версия JPA 2.1). Спецификация JPA 2.2 была выпущена летом 2017 года. Спецификация JPA 3.1, последняя версия, была выпущена весной 2022 года в рамках Jakarta EE 10.

## Entity

[править | править код]

Entity (Сущность) — POJO-класс, связанный с БД с помощью аннотации (`@Entity`) или через XML. К такому классу предъявляются следующие требования:

* Должен иметь пустой конструктор (`public` или `protected`)
* Не может быть вложенным, интерфейсом или enum
* Не может быть `final` и не может содержать `final`-полей/свойств
* Должен содержать хотя бы одно `@Id`-поле

При этом entity может:

* Содержать непустые конструкторы
* Наследоваться и быть наследованным
* Содержать другие методы и реализовывать интерфейсы

Entities могут быть связаны друг с другом (один-к-одному, один-ко-многим, многие-к-одному и многие-ко-многим)[4].

## См. также

[править | править код]

* ORM

## Примечания

[править | править код]

1. ↑ Java Persistence API FAQ (англ.). Oracle Corporation. Архивировано из оригинала 22 августа 2008 года.
2. ↑ JSR 220: Enterprise JavaBeansTM 3.0 (англ.). Архивировано из оригинала 9 сентября 2012 года.
3. ↑ JSR 317: Java Persistence 2.0 (англ.). Архивировано из оригинала 9 сентября 2012 года.
4. ↑ Package javax.persistence (javadoc) (англ.). Oracle Corporation. Архивировано из оригинала 11 декабря 2012 года.

## Ссылки

[править | править код]

* GlassFish's Persistence page (англ.). Архивировано 12 января 2013 года.
* The Java Persistence API - A Simpler Programming Model for Entity Persistence (англ.). Oracle. Архивировано из оригинала 18 мая 2012 года.

Java Persistence API

* DataNucleus[англ.]
* EclipseLink
* Hibernate
* TopLink[англ.]
* ObjectDB[англ.]
* OpenJPA[англ.]
* | Apache Cayenne[англ.]
* EasyBeans[англ.]
* Apache OpenEJB[англ.]

Java

Платформы|

* Java Card
* Java ME
* Java SE
* Java EE

Технологии Sun|

* Java
* Java Development Kit
* OpenJDK
* WTK
* Java Virtual Machine
* JavaFX
* JAXP
* Squawk

Основные сторонние технологии|

* GNU Classpath
* GNU Compiler for Java
* Kaffe
* TopLink[англ.]
* Apache Harmony
* Apache Struts
* Spring Framework
* Dalvik
* Hibernate
* JBoss
* Processing
* AspectJ

История|

* История версий Java SE
* История версий Java EE
* Критика Java
* Java Community Process
* Sun Microsystems
* Свободные реализации Java[англ.]

Свойства языка|

* Байткод
* Синтаксис[англ.]
* Модель памяти
* Апплеты
* Сервлеты
* Мидлеты
* JavaServer Pages
* Web Start
* Enterprise JavaBeans

Скриптовые языки|

* Jython
* JRuby
* BeanShell
* Groovy
* Judoscript[англ.]
* Bean Scripting Framework
* Yoix[англ.]
* Rhino

Конференции Java|

* JavaOne[англ.]
* Devoxx[англ.]

Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её.

|