JPA / EJB3 Отношения - PullRequest
       8

JPA / EJB3 Отношения

11 голосов
/ 18 мая 2010

Я читал о JPA и EJB3 и хотел бы подтвердить, что мое понимание их отношений верно. Вот что я думаю, я знаю ...

JPA - это спецификация, которая была реализована рядом поставщиков, включая:

  • JBoss / Hibernate
  • Oracle / TopLink Essentials (теперь EclipseLink)
  • Apache / OpenJPA

EJB3 - это спецификация, которая реализована на серверах приложений, включая:

  • Glassfish
  • JBoss

Это правильно?

Ответы [ 3 ]

21 голосов
/ 18 мая 2010

API персистентности Java, представленный в Java EE 5, является подмножеством EJB 3 и заменяет решение персистентности EJB 2.0 CMP. JPA 1.0 был определен как часть спецификации EJB 3.0 ( JSR 220 ), но может использоваться как вне, так и вне контейнера EJB. В Java EE 6 JPA 2.0 имеет отдельную спецификацию ( JSR 317 ), выходящую за пределы спецификации EJB 3.1 ( JSR 318 ). Итак, подведем итог:

  • JPA является подмножеством EJB 3, а реализации предоставляются поставщиками постоянных данных , такими как Toplink Essentials / EclipseLink, Hibernate, Kodo / OpenJPA (Kodo - проект, из которого был получен исходный код OpenJPA и Kodo теперь, в свою очередь, основан на OpenJPA) и т. д.

  • EJB 3 - это более широкая спецификация, и реализации предоставляются контейнером EJB серверов приложений, которые зависят от поставщиков сохраняемости:

    • Поставщиком персистентности по умолчанию для GlassFish v3 является EclipseLink
    • Поставщиком сохранения JBoss по умолчанию является Hibernate
    • Поставщиком персистентности по умолчанию в WebLogic 10.3.1+ является OpenJPA / Kodo или EclipseLink
    • Поставщиком персистентности по умолчанию в WebSphere 6.1+ является (на основе) OpenJPA
0 голосов
/ 18 мая 2010

Да, у меня был слишком Google OpenJPA, но это правильно

0 голосов
/ 18 мая 2010

Да, а JPA1 и JPA2 также реализованы DataNucleus , который также реализует JDO1, JDO2, JDO3, а также спецификацию OGC Simple Feature; и также является единственной действительно независимой реализацией (не привязанной к крупному поставщику программного обеспечения). Очевидно, что пользователи могут свободно использовать любую реализацию JPA в своей среде EJB3

...