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

Объекты данных 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

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

Список используемой литературы

  • Иордания, Дэвид; Рассел, Крейг (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 .

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