Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Новые функции в JDO версии 2, отсутствующие в версии 1 [ править ]

  • Концепция графов отключенных объектов
  • Стандартизированные дескрипторы сопоставления ORM (для реализаций JDO на основе ORM)
  • Улучшения JDOQL (одностроковая форма; требуется дополнительная поддержка методов String, Map и Math)
  • Получить, например, Connectionотjavax.jdo.PersistenceManager
  • Подробнее: именованные запросы (pm.newNamedQuery), FetchPlan, последовательность, удаление по запросу, несколько пользовательских объектов в PM

Эталонные реализации JDO [ править ]

  • JDO 1.0: FOStore
  • JDO 2.0: JPOX 1.1
  • JDO 2.1: JPOX 1.2
  • JDO 2.2: Платформа DataNucleus AccessPlatform 1.0.1
  • JDO 3.0: Платформа DataNucleus AccessPlatform 2.1.0
  • JDO 3.1: платформа DataNucleus AccessPlatform 3.2.0
  • JDO 3.2: DataNucleus AccessPlatform 5.2.0

См. Также [ править ]

  • Объектно-реляционное отображение
  • База данных объектов
  • Java Persistence API (JPA)
  • DataNucleus
  • ObjectDB
  • ActiveJPA

Библиография [ править ]

  • Иордания, Дэвид; Рассел, Крейг (22 апреля 2003 г.). Объекты данных Java (1-е изд.). O'Reilly Media . п. 384. ISBN 0-596-00276-9.
  • Тяги, Самир; Ворбургер, Майкл; Маккаммон, Кейрон; Бобзин, Хейко (21 сентября 2003 г.). Основные объекты данных Java (1-е изд.). Прентис Холл . п. 576. ISBN. 0-13-140731-7.
  • Эццио, Дэвид (6 июня 2003 г.). Использование и понимание объектов данных Java (1-е изд.). Апресс . п. 456. ISBN. 1-59059-043-0.

Внешние ссылки [ править ]

  • Спецификация JDO 1.0
  • Спецификация JDO 2.0
  • Спецификация JDO 2.1
  • Спецификация JDO 2.2
  • Спецификация JDO 3.0