私は Hibernate ORM を使用しています。これはJPA仕様の実装であり、リレーショナル データを管理します。また、同じことを行う (リレーショナル データを管理する) JDO仕様についても聞いたことがあります。
両者の根本的な違いは何ですか?どんなコードサンプルでも大歓迎です。JDOは、 EJB3などの他の Java テクノロジ スタックとどのように統合されますか?
これらのJDO-JPA FAQ、 JDO または JPA、 JDO .vを試してください 。JPA、 JDO .v。JPA - API、 JDO .v。JPA-ORM
JDO は JPA よりずっと前に存在し、より広い範囲を持っています。JPA は RDBMS 専用であり、(JPA2 でも) JDO が提供する完全なサポートを提供しません。このフォーラムのリンクやその他の投稿は、議論のあらゆる側面を説明する十分な読み物を提供するはずです。
-- アンディ ( DataNucleus )
JPA は、EJB CMP および JDO の以前の既存の Java 永続性仕様を統合して置き換えるために定義されました。JPA は EJB 3.0 の一部としてリリースされ、Oracle WebLogic、IBM Websphere、Redhat JBoss、およびその他の Java EE プロバイダーによってサポートされる Java EE 仕様の一部です。
JPA (TopLink/EclipseLink、Hibernate、OpenJPA、DataNucleus) をサポートする主要な製品は多数ありますが、JDO や CMP をサポートする製品はほとんどありません。したがって、JPA は両方をうまく置き換えたようです。
JPA が RDBMS のみであるということは、まったく誤りです (私が知っている唯一の JDO 製品である DataNucleus でさえ、JDO をサポートする非リレーショナル プラットフォームで JPA をサポートします)。
EclipseLink の NoSQL および EIS サポート (MongoDB、Oracle NoSQL、XML、レガシー データベース)、Kundera、DataNucleus、Java API として JPA をサポートする ObjectDB などのオブジェクト データベースなど、非リレーショナル プラットフォームで JPA をサポートする他の多くの製品もあります。 .