stringtranslate.com

Объекты данных Java

Объекты данных Java ( JDO ) — это спецификация сохранения объектов Java . Одной из его особенностей является прозрачность служб персистентности для модели предметной области . Постоянные объекты JDO — это обычные классы языка программирования Java ( POJO ); им не требуется реализовывать определенные интерфейсы или расширять специальные классы. JDO 1.0 был разработан в рамках процесса сообщества Java как JSR 12. JDO 2.0 был разработан под номером JSR 243 и выпущен 10 мая 2006 года. JDO 2.1 был завершен в феврале 2008 года и разработан проектом Apache JDO. JDO 2.2 был выпущен в октябре 2008 года. JDO 3.0 был выпущен в апреле 2010 года.

Сохранение объекта определяется во внешних метафайлах XML , которые могут иметь расширения, зависящие от поставщика. Поставщики JDO предоставляют разработчикам средства расширения , которые изменяют скомпилированные файлы классов Java, чтобы их можно было прозрачно сохранять. (Обратите внимание, что расширение байт-кода не требуется спецификацией JDO, хотя это обычно используемый механизм для реализации требований спецификации JDO.) В настоящее время поставщики JDO предлагают несколько вариантов сохранения, например, в RDBMS , в OODB или в файлы . .

Расширенные классы JDO переносимы между реализациями разных поставщиков. После улучшения класс Java можно использовать с продуктом JDO любого поставщика.

JDO интегрируется с Java EE несколькими способами. Прежде всего, реализация поставщика может быть предоставлена ​​в виде соединителя JEE [ уточнить ] . Во-вторых, JDO может работать в контексте сервисов транзакций JEE .

JDO против EJB3 против JPA

Спецификация Enterprise JavaBeans 3.0 (EJB3) также охватывает сохранение, как и EJB v2 с Entity Beans . Между двумя организациями по стандартизации возникали конфликты по поводу превосходства. JDO имеет несколько коммерческих реализаций.

В конце концов, постоянство было «вырвано» из «EJB3 Core», и был сформирован новый стандарт — Java Persistence API (JPA). JPA использует javax.persistenceпакет и сначала был указан в отдельном документе в спецификации EJB3 JSR 220, но позже был перенесен в собственную спецификацию JSR 317. Примечательно, что для него javax.persistenceне требуется контейнер EJB, и поэтому он будет работать в среде Java SE как ну, как всегда делал JDO. JPA, однако, является стандартом объектно-реляционного отображения (ORM), тогда как JDO является одновременно стандартом объектно-реляционного отображения и стандартом прозрачного сохранения объектов. JDO, с точки зрения API, не зависит от технологии базового хранилища данных, тогда как JPA ориентирован на хранилища данных РСУБД (хотя есть несколько поставщиков JPA, которые поддерживают доступ к нереляционным хранилищам данных через API JPA, например DataNucleus и ОбъектБД).

Ведущие коммерческие реализации JDO и проекты с открытым исходным кодом также предлагают реализацию JPA API в качестве альтернативного доступа к своим базовым механизмам персистентности, которые раньше предоставлялись исключительно через JDO в исходных продуктах. Существует множество реализаций JDO с открытым исходным кодом.

Новые возможности JDO версии 2, которых нет в версии 1

Эталонные реализации JDO

Смотрите также

Библиография

Внешние ссылки