Java Data Objects (JDO) とは、Javaオブジェクト永続性に関する仕様である。ドメインモデルの永続的サービスの透過性などもそれに含まれる。JDOの永続的オブジェクトは通常のJavaクラスである。永続性を持たせるために特別なインタフェースを実装する必要もないし、特別なクラスから継承する必要もない。JDO 1.0はJava Community ProcessJSR 12として2002年4月30日にリリースされた。JDO 2.0はJSR 243として開発され、2006年5月10日にリリースされた。

概要

編集

オブジェクトの永続性は、外部のXMLメタファイルで定義され、その中にはベンダー固有の拡張を含めることも可能である。JDOベンダーは開発者向けにエンハンサ (enhancers) を提供する。エンハンサはコンパイル済みのJavaクラスファイルを編集し、透過的な永続性が得られるようにする。JDOの仕様ではバイトコードの改良を必須としているわけではないが、JDOを実装する手段としてはこれが一般的である。現在、JDOベンダーが提供する永続性にはいくつかのオプションがある。例えば、関係データベースへの保存、オブジェクトデータベースへの保存、ファイルへの保存などである。

JDO強化クラスは異なるベンダーの実装であっても機能する。一度強化(エンハンス)した Java クラスは任意のベンダーのJDO製品で使うことができる。

JDOはJakarta EEにいくつかの方法で統合されている。まず、ベンダー実装はJakarta EE Connectorとして提供される。そして、JDOはJakarta EE transaction service(JTA Transaction Managerの実装)のコンテキストで動作する。

JDOとJPA

編集

Enterprise JavaBeans 3.0 (EJB 3.0) では、永続性がカバーされている。それはEJB 2.0のEntity Beansの発展したものである。しかしEJB 3.0はJDOを採用せずに、Java Persistence API (JPA) 1.0を採用した。EJB 3.0はJDO 2.0のリリースの翌日の2006年5月11日に仕様が制定された。JDOとJPAは対立する仕様である。

JPAはjavax.persistenceパッケージを使い、EJB 3.0 (JSR 220) の中の独立した文書で定義されている。JPAはEJBコンテナを必要とせず、JDOのようにJava SE環境でも機能する。しかし、JPAはオブジェクト関係マッピング (ORM) の仕様であって、JDOのようにデータストアの種類に関係なく使える、透過的なオブジェクトの永続の仕様ではない。

JPAはJakarta EEの仕様の一部であるため、JDOよりも多く使われている。JDOの商用製品やオープンソースのプロジェクトの中には、既にJPA APIも実装し選択肢を増やしているものがある。

JDO 2.0での機能追加

編集
  • Disconnected Object Graphsの概念
  • Standardized ORM Mapping Descriptors (ORMベースのJDO実装向け)
  • JDOQL拡張
  • Get e.g. a java.sql.Connection from javax.jdo.PersistenceManager
  • その他: Named Queries (pm.newNamedQuery), FetchPlan, Sequence, Delete by Query, multiple User Objects on PM

関連項目

編集

外部リンク

編集

仕様

編集

オープンソース実装

編集

コミュニティなど

編集

📚 Artikel Terkait di Wikipedia

Java

JMX (Java Management Extensions) 主に分散システムで依存性の注入によるJavaプログラムの動的な再構成技術 JDMK (Java Dynamic Management Kit) JMX仕様に基づいた開発支援ソフトウェア JDO (Java Data Objects) オブジェクト永続化の仕様

オープンストリートマップ

license: where we are, where we’re going”. OpenGeoData. 2011年4月15日閲覧。 ^ Poole, Simon. “OSM V1 Objects ODbL acceptance statistics”. 2012年5月21日閲覧。 ^ “Legal

Java Community Process

Java コミュニティ・プロセス(英: Java community process)またはJCPは、1998年に設立され、利害関係者が Java プラットフォームの将来のバージョンや機能に関与する定義に関与することを許した標準化の手続きである。 JCP は Java の仕様に関する要望をまとめる Java

Apache OpenJPA

OpenJPAは Java Persistence API仕様のオープンソース実装の一つである。 データベースへのオブジェクトの永続化を単純化する ORM の一つでもある。 Apache License2.0のもとで配布されている。 Kodoは、Java Data Objects

Core Data

ク・関係データベースの上に構築していた部分を、デスクトップ用の特定ファイル、単一アプリケーション用途に再設計して開発された。したがって両者の概念はかなりの部分が共通する。なお、WebObjectsは現在Javaに移行しているが、Core DataはObjective-Cで実装されている。 表示 編集

Java Platform, Standard Edition

Java Platform, Standard Edition または Java SE は、多くのJavaプラットフォームプログラムで利用されるJava APIの集合体である。Java仮想マシン、APIなどから構成される。バージョン1.2からバージョン5.0まではJava 2 Platform, Standard

オブジェクト関係マッピング

(triplestore) と呼ぶ。 その後、Java関連で新たな類似のシステムが Java Data Objects (JDO) として登場した。EOF とは異なり、JDO は標準規格であり、いくつかのベンダーから実装したものが登場している。Enterprise JavaBeans 3.0 (EJB3)

Java Persistence API

Java Persistence APIであり、HibernateやTopLinkのようなプロジェクトも現在ではJava Persistence APIを実装している。 仕様 Java Data Objects 実装 DataNucleus GlassFish Hibernate