Java Data Objects ( JDO ) は、 Java オブジェクトの 永続性の仕様です。その特徴の 1 つは、ドメイン モデルに対する永続性サービスの透過性です。JDO 永続オブジェクトは通常のJava プログラミング言語 クラス( POJO ) であり、特定のインターフェイスを実装したり、特別なクラスから拡張したりする必要はありません。JDO 1.0 は、Java Community Processの下で JSR 12 として開発されました。JDO 2.0 は、JSR 243 の下で開発され、2006 年 5 月 10 日にリリースされました。JDO 2.1 は、Apache JDO プロジェクトによって開発され、2008 年 2 月に完成しました。JDO 2.2 は 2008 年 10 月にリリースされました。JDO 3.0 は 2010 年 4 月にリリースされました。
オブジェクトの永続性は、ベンダー固有の拡張機能を持つ可能性のある外部XMLメタファイルで定義されます。JDO ベンダーは、コンパイルされた Java クラス ファイルを変更して透過的に永続化できるようにするエンハンサーを開発者に提供します。(バイト コードの拡張は、JDO 仕様の要件を実装するために一般的に使用されるメカニズムですが、JDO 仕様では必須ではありません。) 現在、JDO ベンダーは、RDBMS、OODB、ファイルなど、永続化のオプションをいくつか提供しています。
JDO 拡張クラスは、異なるベンダーの実装間で移植可能です。拡張された Java クラスは、どのベンダーの JDO 製品でも使用できます。
JDO はいくつかの方法でJava EEと統合されます。まず、ベンダー実装はJEE コネクタ[明確化]として提供される場合があります。次に、JDO は JEEトランザクション サービスのコンテキストで動作する場合があります。
JDO 対 EJB3 対 JPA
Enterprise JavaBeans 3.0 (EJB3) 仕様も、エンティティ Beansを使用した EJB v2 と同様に、永続性をカバーしています。優位性に関して、2 つの標準化団体間で標準の競合が発生しています。JDO には、いくつかの商用実装があります。
最終的に、永続性は「EJB3 Core」から「分離」され、新しい標準であるJava Persistence API (JPA) が形成されました。JPA はjavax.persistenceパッケージを使用し、最初は EJB3 仕様 JSR 220 内の別のドキュメントで指定されていましたが、後に独自の仕様 JSR 317 に移動されました。重要な点は、 EJB コンテナを必要としないためjavax.persistence、JDO がこれまで常にそうであったように、Java SE 環境でも機能することです。ただし、JPA はオブジェクト リレーショナル マッピング(ORM) 標準であるのに対し、JDO はオブジェクト リレーショナル マッピング標準と透過的オブジェクト永続性標準の両方です。API の観点から見ると、JDO は基礎となるデータストアのテクノロジに依存しませんが、JPA は RDBMS データストアを対象としています (ただし、DataNucleus や ObjectDB など、JPA API を介して非リレーショナル データストアへのアクセスをサポートする JPA プロバイダーはいくつかあります)。
主要な JDO 商用実装およびオープン ソース プロジェクトでは、以前は元の製品で JDO 経由でのみ公開されていた基盤となる永続性エンジンへの代替アクセスとして、JPA API 実装も提供しています。JDO のオープン ソース実装は多数あります。
JDO バージョン 2 の新機能はバージョン 1 にはない
- 切断されたオブジェクトグラフの概念
- 標準化された ORM マッピング記述子 (ORM ベースの JDO 実装用)
- JDOQL の拡張機能 (単一文字列形式、より多くの文字列、マップ、および数学メソッドのサポートが必須)
- 例えば
Connectionから取得javax.jdo.PersistenceManager - 詳細: 名前付きクエリ (pm.newNamedQuery)、FetchPlan、シーケンス、クエリによる削除、PM 上の複数のユーザー オブジェクト
JDO リファレンス実装
- JDO 1.0 : FOストア
- JDO 2.0 : JPOX 1.1
- JDO 2.1 : JPOX 1.2
- JDO 2.2:データニュークリアスアクセス プラットフォーム 1.0.1
- JDO 3.0:データニュークリアスアクセス プラットフォーム 2.1.0
- JDO 3.1: DataNucleusアクセス プラットフォーム 3.2.0
- JDO 3.2: DataNucleusアクセス プラットフォーム 5.2.0
参照
- オブジェクトリレーショナルマッピング
- オブジェクトデータベース
- Java 永続 API (JPA)
- データニュークリアス
- オブジェクトDB
- アクティブJPA
文献
- Jordan, David; Russell, Craig (2003 年 4 月 22 日)。Java Data Objects (第 1 版)。O'Reilly Media。p . 384。ISBN 0-596-00276-9。
- チャギ、サミール。フォルブルガー、マイケル。マキャモン、ケイロン。ボブジン、ヘイコ(2003年9月21日)。 Core Java Data Objects (第 1 版)。プレンティスホール。 p. 576.ISBN 0-13-140731-7。
- Ezzio, David (2003 年 6 月 6 日)。『Java データ オブジェクトの使用と理解 (第 1 版)』。Apress。p . 456。ISBN 1-59059-043-0. 2010年12月23日時点のオリジナルよりアーカイブ。2010年2月8日閲覧。
外部リンク
- JDO 1.0 仕様
- JDO 2.0 仕様
- JDO 2.1 仕様
- JDO 2.2 仕様
- JDO 3.0 仕様
