Подтвердить что ты не робот

В чем разница между спецификациями JPA и JDO?

Я использую Hibernate ORM, который является реализацией спецификации JPA для управления реляционными данными. Я также слышал о спецификации JDO, которая должна была делать то же самое (управлять реляционными данными).

В чем заключаются фундаментальные различия между этими двумя?. Как JDO интегрируется с другими пакетами технологий Java, например. EJB3?

4b9b3361

Ответ 1

Попробуйте эти Вопросы JDO-JPA, JDO или JPA, JDO.v. JPA, JDO.v. JPA - API, JDO.v. JPA - ORM

JDO существовала задолго до JPA и имеет более широкий охват. JPA предназначена исключительно для РСУБД, и (даже в JPA2) не обеспечивает полную поддержку, предоставляемую JDO. Ссылки и другие сообщения в этом форуме должны содержать достаточное чтение, чтобы объяснить все стороны аргументов.

- Энди (DataNucleus)

Ответ 2

JPA была определена для унификации и замены предыдущих существующих спецификаций сохранения Java EJB CMP и JDO. JPA была выпущена как часть EJB 3.0 и является частью спецификации Java EE, поддерживаемой Oracle WebLogic, IBM Websphere, Redhat JBoss и любым другим поставщиком Java EE.

Есть много ведущих продуктов, поддерживающих JPA (TopLink/EclipseLink, Hibernate, OpenJPA, DataNucleus), но мало кто поддерживает JDO или CMP. Итак, кажется, что JPA неплохо заменила оба.

Что касается JPA только RDBMS, то это полностью ложно (даже DataNucleus - единственный оставшийся JDO-продукт, о котором я знаю, поддерживает JPA на любой нереляционной платформе, поддерживающей JDO).

Существует также множество других продуктов, поддерживающих JPA на нереляционных платформах, таких как поддержка EclipseLink NoSQL и EIS (MongoDB, Oracle NoSQL, XML, устаревшие базы данных), Kundera, DataNucleus и даже объектные базы данных, такие как ObjectDB, которые поддерживают JPA как их API Java.