Java Persistence API: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Hint000 (обсуждение | вклад) Нет описания правки |
→История: обновление |
||
(не показано 9 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
''' |
'''Jakarta Persistence API''' (''JPA; ранее Java Persistence API'') — спецификация [[Интерфейс программирования приложений|API]] [[Java Platform, Enterprise Edition|Jakarta EE]], предоставляет возможность сохранять в удобном виде Java-объекты в базе данных<ref>{{cite web | title=Java Persistence API FAQ | url=http://www.oracle.com/technetwork/java/javaee/persistence-jsp-136066.html | publisher=Oracle Corporation | archiveurl=https://web.archive.org/web/20080822023926/http://java.sun.com/javaee/overview/faq/persistence.jsp | archivedate=2008-08-22 | language=en | deadurl=yes }}</ref>. |
||
Существует несколько реализаций этого интерфейса, одна из самых популярных использует для этого [[Hibernate (библиотека)|Hibernate]]. |
Существует несколько реализаций этого интерфейса, одна из самых популярных использует для этого [[Hibernate (библиотека)|Hibernate]]. JPA реализует концепцию [[ORM]]. |
||
Поддержка сохранности данных, предоставляемая ''JPA'', покрывает области: |
Поддержка сохранности данных, предоставляемая ''JPA'', покрывает области: |
||
* непосредственно API, заданный в пакете <code>javax.persistence</code>; |
* непосредственно API, заданный в пакете <code>[http://docs.oracle.com/javaee/7/ruwiki/api/javax/persistence/package-summary.html javax.persistence]</code>; |
||
* платформо-независимый объектно-ориентированный язык запросов [[Java Persistence Query Language]]; |
* платформо-независимый объектно-ориентированный язык запросов [[Java Persistence Query Language]]; |
||
* [[Метаданные|метаинформация]], описывающая связи между объектами |
* [[Метаданные|метаинформация]], описывающая связи между объектами; |
||
* Генерация [[DDL]] для сущностей |
* Генерация [[DDL]] для сущностей. |
||
== История == |
== История == |
||
Java Persistence API был определён в процессе работы экспертной группы над [[Java Community Process|JSR]] 220<ref>{{cite web|url=http://www.jcp.org/en/jsr/detail?id=220|title=JSR 220: Enterprise JavaBeansTM 3.0|language=en|archiveurl= |
Java Persistence API был определён в процессе работы экспертной группы над [[Java Community Process|JSR]] 220<ref>{{cite web|url=http://www.jcp.org/en/jsr/detail?id=220|title=JSR 220: Enterprise JavaBeansTM 3.0|language=en|archiveurl=https://www.webcitation.org/6AXgDsJSz?url=http://www.jcp.org/en/jsr/detail?id=220|archivedate=2012-09-09|deadurl=yes}}</ref>. Первая версия JPA была выпущена 11 мая 2006 года. JPA 2.0 был описан экспертной группой в JSR 317<ref>{{cite web|url=http://www.jcp.org/en/jsr/detail?id=317|title=JSR 317: Java Persistence 2.0|language=en|archiveurl=https://www.webcitation.org/6AXgER76R?url=http://www.jcp.org/en/jsr/detail?id=317|archivedate=2012-09-09|deadurl=yes}}</ref>, спецификация была выпущена 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 == |
||
Строка 23: | Строка 23: | ||
* Содержать другие методы и реализовывать интерфейсы |
* Содержать другие методы и реализовывать интерфейсы |
||
Entities могут быть связаны друг с другом (один-к-одному, один-ко-многим, многие-к-одному и многие-ко-многим)<ref>{{cite web|title=Package javax.persistence (javadoc)|url=http://docs.oracle.com/javaee/6/ruwiki/api/javax/persistence/package-summary.html|publisher=Oracle Corporation|language=en|archiveurl= |
Entities могут быть связаны друг с другом (один-к-одному, один-ко-многим, многие-к-одному и многие-ко-многим)<ref>{{cite web|title=Package javax.persistence (javadoc)|url=http://docs.oracle.com/javaee/6/ruwiki/api/javax/persistence/package-summary.html|publisher=Oracle Corporation|language=en|archiveurl=https://www.webcitation.org/6Cp7Shv0i?url=http://docs.oracle.com/javaee/6/ruwiki/api/javax/persistence/package-summary.html|archivedate=2012-12-11|deadurl=yes}}</ref>. |
||
== См. также == |
== См. также == |
||
Строка 32: | Строка 32: | ||
== Ссылки == |
== Ссылки == |
||
* {{cite web|url=http://glassfish.dev.java.net/javaee5/persistence/|title=GlassFish's Persistence page|language=en|deadlink=unknown-host|archiveurl= |
* {{cite web|url=http://glassfish.dev.java.net/javaee5/persistence/|title=GlassFish's Persistence page|language=en|deadlink=unknown-host|archiveurl=https://archive.today/20130112000920/http://glassfish.java.net/javaee5/persistence/|archivedate=2013-01-12}} |
||
* {{cite web|url=http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html|title=The Java Persistence API - A Simpler Programming Model for Entity Persistence|language=en|publisher=Oracle|archiveurl= |
* {{cite web|url=http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html|title=The Java Persistence API - A Simpler Programming Model for Entity Persistence|language=en|publisher=Oracle|archiveurl=https://www.webcitation.org/67kNJfAHL?url=http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html|archivedate=2012-05-18|deadurl=yes}} |
||
{{Java Persistence API}} |
{{Java Persistence API}} |
Текущая версия от 15:49, 2 июля 2024
Jakarta Persistence API (JPA; ранее Java Persistence API) — спецификация API Jakarta EE, предоставляет возможность сохранять в удобном виде Java-объекты в базе данных[1].
Существует несколько реализаций этого интерфейса, одна из самых популярных использует для этого Hibernate. JPA реализует концепцию ORM.
Поддержка сохранности данных, предоставляемая JPA, покрывает области:
- непосредственно API, заданный в пакете
javax.persistence
; - платформо-независимый объектно-ориентированный язык запросов Java Persistence Query Language;
- метаинформация, описывающая связи между объектами;
- Генерация DDL для сущностей.
История
[править | править код]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].
См. также
[править | править код]Примечания
[править | править код]- ↑ Java Persistence API FAQ (англ.). Oracle Corporation. Архивировано из оригинала 22 августа 2008 года.
- ↑ JSR 220: Enterprise JavaBeansTM 3.0 (англ.). Архивировано из оригинала 9 сентября 2012 года.
- ↑ JSR 317: Java Persistence 2.0 (англ.). Архивировано из оригинала 9 сентября 2012 года.
- ↑ 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 года.
Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |