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

Объекты данных Java (JDO) является спецификацией Ява объект упорство. Одна из его особенностей - прозрачность сервисов сохраняемости для модель предметной области. Постоянные объекты 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 пакет, и впервые был указан в отдельном документе в спецификации EJB3 JSR 220, но позже был перемещен в собственную спецификацию 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)
  • Получите, например, а Подключение от 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-е изд.). Prentice Hall. п. 576. ISBN  0-13-140731-7.
  • Эццио, Дэвид (6 июня 2003 г.). Использование и понимание объектов данных Java (1-е изд.). Apress. п. 456. ISBN  1-59059-043-0.

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