この章では、オブジェクト・リレーショナルおよびObject-XMLマッピングで使用できるアイテムについて説明します。
この章の内容は次のとおりです。
EclipseLinkでは、完全なJPA準拠のJPA実装が提供されます。これは、すべての必須機能および多くのオプション機能に完全に準拠しています。これは、JPA仕様に記載されていないEclipseLink機能(オブジェクトレベル・キャッシュ、分散キャッシュ調整、広範なパフォーマンス・チューニング・オプション、Oracle Databaseサポートの拡張機能、高度なマッピング、オプティミスティック・ロック・オプションとペシミスティック・ロック・オプション、広範な注釈と問合せのヒントなど)もサポートしています。
詳細は、『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』を参照してください。
次の各項で、これらの機能の多くについて説明します。
このエンティティ・アーキテクチャは、エンティティ、永続性ユニット、永続性コンテキスト、エンティティ・マネージャ・ファクトリおよびエンティティ・マネージャで構成されています。図2-1に、これらの要素の関係を示します。
永続性は、1つ以上のEntityManagerFactory
オブジェクトを作成します。
各EntityManagerFactory
は、1つの永続性ユニットによって構成されます。
EntityManagerFactory
は、1つ以上のEntityManager
オブジェクトを作成します。
1つ以上のEntityManager
は、1つのPersistenceContext
を管理します。
エンティティは、アプリケーションで定義されたオブジェクトで、次の特性があります。
永続化することが可能です。
永続識別子を持ちます(永続識別子とは、エンティティ・インスタンスを一意に識別し、そのインスタンスを同じエンティティ・タイプの他のインスタンスから区別するキーです。エンティティは、データ・ストアにそのエンティティを表現するオブジェクトが存在する場合、永続識別子を持ちます)。
エンティティの永続性ビューに関してトランザクション的であるという点で、トランザクション的です(エンティティは、トランザクション内で作成、更新および削除され、変更のデータベースへのコミット時にはトランザクションが必要です)。ただし、メモリー内エンティティは、変更を永続化することなく更新できます。
プリミティブ・オブジェクト、プリミティブ・ラッパー・オブジェクトまたは組込みオブジェクトではありません。エンティティは、単一の場所(表の行など)に通常格納される集約された状態のセットを保持する粒度の細かいオブジェクトであり、他のエンティティに対するリレーションシップを持ちます。
エンティティには、エンティティを記述するエンティティ・メタデータも含まれています。エンティティ・メタデータは、データベースに対して永続化されません。これは、エンティティがロードされてから実行時に起動されるまでの間、永続性レイヤーがエンティティを管理するために使用されます。メタデータは、Javaプログラミング要素またはXMLファイル(ディスクリプタ)の注釈として表現できます。詳細は、第4章「エンティティの理解」を参照してください。
現在のリリース以降では、マッピングを自動的に追加できる拡張可能なエンティティを定義および使用できます。この場合、エンティティには、静的属性ではなく、マップ内に拡張された属性が保存されます。次に、エンティティは、eclipselink-orm.xml
マッピング・ファイルを使用して、このマップの値をデータベースにマップする方法を定義します。EclipseLinkでは、動的にマッピングを定義できることに加えて、これらの拡張されたマッピングを保存して外部から管理することもできます。この外部保存によって、アプリケーションの実行中に、拡張されたマッピングを定義できるようになりました。エンティティを拡張可能にする方法の詳細は、『Oracle Fusion Middleware Oracle TopLinkソリューション・ガイド』のSoftware as a Serviceの提供に関する項を参照してください。
永続性は、エンティティの特性です。つまり、エンティティはデータ・ストアで表すことができ、後でアクセスできます。
永続性ユニットは、永続化可能なユニットを識別し、それに関連するプロパティを定義します。また、永続化する必要があるオブジェクトも定義します。オブジェクトは、エンティティ・クラス、埋込み可能クラス、マップされたスーパークラスのいずれかです。永続性ユニットでは、エンティティ・マネージャ・ファクトリの構成が提供されます。エンティティ・マネージャ・ファクトリによって作成されたエンティティ・マネージャは、永続性ユニットに定義されたプロパティを継承します。
エンティティ・マネージャは、エンティティに対して操作を実行するAPIコールを有効にします。エンティティ・マネージャを使用してエンティティの作成、読取り、書込みのいずれかを行うまで、エンティティは、非永続性Javaオブジェクトです。エンティティ・マネージャがエンティティへの参照を取得すると、そのエンティティはエンティティ・マネージャによって管理されるようになります。特定の時点でのエンティティ・マネージャ内の管理対象エンティティ・インスタンスのセットは、永続性コンテキストと呼ばれ、同じ永続性IDのJavaインスタンスは、永続性コンテキスト内に特定の時点で1つのみ存在できます。
特定のデータベースを対象とする読取りまたは書込み、特定タイプのオブジェクトの永続化または管理、および特定の永続性プロバイダによる実装を行うようエンティティ・マネージャを構成できます。永続性プロバイダにより、EntityManager
インタフェース実装、Query実装、SQL生成などのJPAの実装が提供されます。エンティティ・マネージャはEntityManagerFactory
によって提供されます。エンティティ・マネージャの構成は、EntityManagerFactory
に依存しますが、永続性ユニットとして個別に定義されます。永続性ユニットに名前を付けることで、各EntityManagerFactory
オブジェクトを区別できます。この方法により、特定のエンティティの操作にどの構成を使用するかをアプリケーションで制御できます。永続性ユニットを記述する構成は、persistence.xml
ファイルで定義します。特定の構成をEntityManagerFactory
にバインドするようにリクエストできるようにするために、永続性ユニットに名前を付けます。
注釈は、JPA永続性プロバイダが永続動作を管理するために実行時に解釈できるように、対応するJavaクラス・ファイルにコンパイルされるメタデータを使用してJavaソース・コードを修飾するための簡単な表現手段です。
メタデータ注釈は、構造化メタデータおよび型指定メタデータをソース・コードに添付するJava言語の機能を表します。メタデータ指定には注釈のみで十分であり、XMLを使用する必要はありません。標準のJPA注釈は、javax.persistence
パッケージにあります。
詳細は、JPA仕様(http://jcp.org/en/jsr/detail?id=317
)の第10章「Metadata Annotations」を参照してください。
EclipseLinkには、Javaソース・コードに簡単にメタデータを追加できるように、一連の独自仕様の注釈が用意されています。メタデータは、対応するJavaクラス・ファイルにコンパイルされ、実行時にJPA永続性プロバイダによって解釈されて、永続性動作が管理されます。注釈は、クラス、メソッドおよびフィールドのレベルに適用できます。
EclipseLinkの注釈では、JPAメタデータの使用を介して現在入手できない一部の機能が公開されています。
基本プロパティ: デフォルトでは、EclipseLinkの永続性プロバイダは、シンプル・タイプに対する基本マッピングを自動的に構成します。これらの注釈を使用して、フィールドまたはプロパティのエンティティの即時の状態を微調整します。
関係: EclipseLinkには、1対1や1対多などの一部の関係がデフォルトで含まれます。他の関係は、明示的にマップする必要があります。注釈を使用して、エンティティ関係のタイプおよび特性を指定して、これらの関係をデータベースでどのように実装するかを微調整します。
埋込みオブジェクト: 埋込みオブジェクトには、それ自体の永続識別子は存在せず、識別子に関しては、エンティティに依存しています。デフォルトで、永続性プロバイダでは、すべてのエンティティがそれ自体の表にマップされることが想定されます。それに続く注釈を使用すれば、他のエンティティが所有するエンティティに対して、この動作をオーバーライドできます。
次の項では、オブジェクト・リレーショナル・マッピング・プロジェクトの主な構成ファイルのいくつかについて説明します。
各注釈には、デフォルト値があります(詳細はJPA仕様を参照)。永続性エンジンにより、アプリケーションの大半に適用されるデフォルトが定義されます。デフォルト値をオーバーライドするには、単に値を指定します。したがって、必ずしも構成値を指定する必要はなく、指定はこの原則の例外となります。これは、例外による構成と呼ばれます。
注意: 必要時に動作を変更できるように、ユーザーはデフォルト値を把握しておく必要があります。 |
デフォルト値の詳細は、『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』を参照してください。JPA仕様の第10章「Metadata Annotations」も参照してください。
http://jcp.org/en/jsr/detail?id=317
この構成は例外処理として行われます。つまり、構成ファイルのいずれかに値が指定されていない場合は、デフォルト値が使用されます。
永続性ユニットでは、エンティティ・マネージャを取得する際に必要な詳細を定義します。エンティティ・マネージャ・ファクトリを取得する場合、永続性ユニットを名前で指定します。永続性ユニットを構成するには、JPA永続性ファイルpersistence.xml
を使用します。ベンダー固有の拡張機能は、<properties>
要素を使用して、このファイルに指定できます。
このファイルは、永続性ユニットのJARファイルのMETA-INF
/ディレクトリまたはクラスパスにあります。
詳細は、5.2項「永続性ユニットについて」を参照してください。『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』の永続性プロパティの拡張機能リファレンスに関する項も参照してください。
オブジェクト・リレーショナル・データ・タイプ・マッピングは、特定オブジェクトのデータ・メンバー・タイプを、Oracle Databaseのような特別なオブジェクト・リレーショナル・データベースでの格納に最適化された構造化データ・ソース表現に変換します。オブジェクト・リレーショナル・データ・タイプ・マッピングを使用すると、オブジェクト・モデルをオブジェクト・リレーショナル・モデルにマップできます。オブジェクト・リレーショナル・データ・タイプ・マッピングは、オブジェクト・リレーショナル・データ・タイプ・データ・ソース表現をサポートするために最適化された特別のオブジェクト・リレーショナル・データベースにのみ使用できます。
詳細は、『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』を参照してください。
orm.xml
ファイルを使用して、メタデータを永続性ユニットに適用します。このメタデータは、すべてのマッピング・ファイルと注釈の集合です(xml-mapping-metadata-complete
要素が存在しない場合)。メタデータに対して1つのマッピングorm.xml
ファイルを使用し、そのファイルをクラスパスのMETA-INF
ディレクトリに配置する場合、それを明示的にリストする必要はありません。このファイル(orm.xml
)は、永続性プロバイダによって自動的に検索され、使用されます。
JPA 2.0 orm.xml
のスキーマは、orm_2_0.xsd
です。(http://java.sun.com/xml/ns/persistence/orm_2_0.xsd
)
マッピング・ファイルを異なる名前で使用するか、異なる場所に配置する場合、それらをpersistence.xml
ファイルのmapping-file
要素にリストする必要があります。
標準のJPAのorm.xml
ファイルによって、メタデータを永続性ユニットに適用します。これは、すべてのJPA 2.0マッピングをサポートしています。このファイルを注釈のかわりに使用するか、ソース・コードのJPA注釈をオーバーライドするために使用できます。eclipselink-orm.xml
ファイルは、orm.xml
ファイルで定義されているマッピングに加え、JPA 2.0では定義されていないEclipseLink拡張機能のフル・セットもサポートしています。eclipselink-orm.xml
ファイルに指定した設定によって、orm.xml
ファイルの設定がオーバーライドされます。
eclipselink-orm.xml
ファイルの詳細は、『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』のeclipselink-orm.xmlのスキーマ参照に関する項を参照してください。
注意: このマッピング・ファイルを使用すると、EclipseLinkの多くの高度な機能が有効になりますが、他のJPA実装に対する永続性ユニットの移植性がなくなる場合があります。 |
オーバーライド値の詳細は、次を参照してください。
JPA仕様の「XML Overriding Rules」
eclipselink-orm.xml
のスキーマはeclipselink_orm_2_2.xsd
です。
http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_2_2.xsd
orm.xml
ファイルのマッピングをオーバーライドするには、プロジェクトでMETA-INF/eclipselink-orm.xml
ファイルを定義する必要があります。orm.xml
とeclipselink-orm.xml
の両方を指定すると、eclipselink-orm.xml
の内容によって、orm.xml
と、永続性ユニットに指定されている他のすべてのJPAマッピング・ファイルがオーバーライドされます。複数のORMファイルの指定が重複している場合、競合エンティティが存在しなければそれらのファイルはマージされます。
詳細は、『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』のオーバーライドおよびマージに関する項を参照してください。
デフォルトでは、.orm
XMLファイルの内容は、JPAの.orm
XMLスキーマに対して検証されません。
開発時に、.orm
XMLファイルをスキーマに対して検証し、その妥当性を確認することをお薦めします。EclipseLinkで.orm
XMLスキーマの検証を有効にするには、persistence.xml
ファイルの永続性ユニット・プロパティeclipselink.orm.validate.schema
を使用します。
永続性ユニットの定義で重要なのは、プロバイダが読み書きするデータを検出可能な場所です。これを、データ・ソースと呼びます。データ・ソースは、通常はデータベースです。データベースの場所は、サーバーのJNDIネームスペースのJDBCデータ・ソースの形式で指定します。
通常、EclipseLinkを使用するアプリケーションは、JTAトランザクションのコンテキストで実行します。データ・ソースの名前は、persistence.xml
ファイルのjta-data-source
要素に指定します。アプリケーションがトランザクションのコンテキストで実行されない場合は、resource-localと見なされます。この場合は、non-jta-data-source
要素に、データ・ソースの名前を指定します。
XMLスキーマなどのリレーショナル・データベース以外のデータ・ソースも指定できます。
詳細は、第8章「データ・アクセスの理解」を参照してください。
アプリケーションは、スタンドアロン(Java SE)・モードで実行できます。このモードでは、非JTA準拠のデータ・ソースとともに、非Oracleスタックにおいて、サーバーの外部でアプリケーションが実行されます。この場合、JDBCドライバ・クラス、データベースに接続するためにクライアントが使用するURL、データベースにアクセスするためのユーザー名とパスワードなどのドライバ固有の情報を指定する必要があります。アプリケーションをスタンドアロン・モードで実行する方法の詳細および例は、『Oracle Fusion Middleware Oracle TopLinkソリューション・ガイド』のコンテナ外部でのTopLink JPAのテストに関する項を参照してください。
EclipseLinkのデフォルトでは、読み取られて永続性ユニットに対して永続化されたすべてのオブジェクトのサブセットがキャッシュされる、共有オブジェクト・キャッシュが使用されます。共有キャッシュは、ローカルのEntityManager
キャッシュとは異なります。共有キャッシュは、永続性ユニット(EntityManagerFactory
またはサーバー)の期間存在し、永続性ユニットのすべてのEntityManager
およびユーザーによって共有されます。ローカルのEntityManager
キャッシュは共有されず、EntityManager
またはトランザクションの期間のみ存在します。
共有キャッシュの利点は、オブジェクトを読み取ると、同じオブジェクトを再度読み取る際にデータベースにアクセスする必要がないことです。また、問合せを使用してオブジェクトを読み取る場合は、オブジェクトを再作成する必要はなく、オブジェクトの関係も再度フェッチする必要がありません。
共有キャッシュの制限は、JDBC経由または別のアプリケーションやサーバーによってデータベースが直接変更されると、共有キャッシュのオブジェクトが失効することです。
EclipseLinkには、失効データを扱うために、次のようなメカニズムが用意されています。
リフレッシュ
無効化
オプティミスティック・ロック
キャッシュ・コーディネーション
データベース変更通知(DCN)
共有キャッシュは無効にしたり、@Cache
または@Cacheable
注釈を使用して、選択的に有効化または無効化することもできます。EclipseLinkには、キャッシュするオブジェクト数および使用するメモリー量を構成するためのキャッシュ戦略もいくつか用意されています。
キャッシュが最新でないことをアプリケーションが検出した場合、アプリケーションはプログラムでキャッシュをクリア、リフレッシュまたは無効化できます。キャッシュされているオブジェクトのいずれかが使用中の場合にキャッシュをクリアすると、オブジェクト・アイデンティティの問題が発生する場合があるので、無効化する方が安全です。キャッシュされているオブジェクトのいずれも使用中でないことがわかっている場合は、キャッシュをクリアできます。
詳細は、第9章「キャッシュの理解」を参照してください。
EclipseLinkには、キャッシュ・プロパティを定義できる@Cache
注釈が用意されています。プロパティには、キャッシュのタイプ、サイズ、リフレッシュ・ルールなどが含まれます。『Oracle Fusion Middleware Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス』を参照してください。
あるサーバーでの変更は他のサーバーにキャッシュされているオブジェクトには反映されないため、クラスタ環境でのキャッシングでは問題が発生する場合があります。これは、読取り専用オブジェクトでは問題になりませんが、頻繁に更新されるオブジェクトでは問題になります。
EclipseLinkには、この問題に対する解決策がいくつか用意されています。
頻繁に変更されるクラスに対してはキャッシュを無効にできます。
キャッシュ・コーディネーションを使用して、クラスタ内のサーバー間で変更をブロードキャストして、変更されたオブジェクトを更新または無効化できます。
存続時間または時刻に基づいてキャッシュを無効化できます。
オプティミスティック・ロックを使用して、無効なオブジェクトへの更新を防ぎ、キャッシュ内でオブジェクトが無効化されるようにトリガーすることができます。
詳細は、9.11.4項「コーディネートされたキャッシュおよびクラスタリング」を参照してください。
EclipseLinkのオブジェクト・リレーショナル・コンポーネントは、様々な問合せをサポートしています。
JPQL問合せ
SQL問合せ
Criteria API問合せ
ネイティブSQL問合せ
EclipseLink JPA問合せヒント
問合せのキャスト
問合せ用のOracle拡張機能
拡張EclipseLinkネイティブ問合せ
これらの問合せの詳細は、第10章「問合せの理解」を参照してください。
EclipseLinkによって提供されるObject-XMLコンポーネントでは、JavaクラスをXMLスキーマに効率的にバインドできます。Object-XMLではJAXBが実装されるので、注釈でマッピング情報を提供でき、マッピングをXML形式で保存できます。
JAXB (Java Architecture for XML Binding—JSR 222)は、JavaのXMLバインディングの標準です。JAXBでは、XMLスキーマの概念が100%カバーされています。EclipseLinkでは、JAXBの実装が多くの拡張機能とともに提供されています。
EclipseLink Object-XMLをJAXBプロバイダとして使用する際には、既存のオブジェクト・モデルをXMLに変換するためのメタデータは不要です。XML表記を微調整する必要がある場合は、(注釈またはXMLを使用して)メタデータを指定できます。
Object-XMLには、Javaクラス・モデルでスキーマをミラーリングしなくても、複雑なXML構造を処理できる高度なマッピングが多数含まれています。
詳細は、『Oracle Fusion Middleware Oracle TopLinkによるJAXBアプリケーションの開発』を参照してください。
次の各項で、これらの機能の多くについて説明します。
Object-XMLをJAXBプロバイダとして使用するには、JAXBランタイムへのエントリ・ポイントを指定する必要があります。このエントリ・ポイントは、EclipseLink JAXBContextFactory
クラスです。
jaxb.properties
というテキスト・ファイルを作成して、JAXBContextFactory
クラスへのパスをjavax.xml.bind.context.factory
コンテキスト・パラメータの値として、次のように入力します。
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
jaxb.properties
ファイルは、ドメイン・クラスと同じパッケージに存在する必要があります。
図2-2に示されているObject-XMLのサンプル・アーキテクチャでは、開始点はXMLスキーマになっています。バインディング・コンパイラは、スキーマから導出されたプログラム・クラスおよびインタフェースのセットにソース・スキーマをバインドします。アプリケーション内のJAXBの注釈が付いたクラスは、スキーマ・コンパイラで生成されるか、開発者がJAXB注釈を既存のJavaクラスに追加した結果によって生成されます。アプリケーションは、データをXML文書にマーシャリングするか、データをコンテンツ・オブジェクトのツリーにアンマーシャリングできます。各コンテンツ・オブジェクトは、導出されたスキーマ、またはスキーマ・ジェネレータによってマップされた既存のプログラム要素のどちらかのインスタンスで、XML内のインスタンスに対応しています。
JAXBContextFactory
クラスは、EclipseLink JAXBランタイムへのエントリ・ポイントです。これは、必須のファクトリ・メソッドを提供し、JAXBContext
オブジェクトの新しいインスタンスを作成できます。
JAXBContextFactory
クラスでは、次のことが可能です。
クラスの配列およびプロパティ・オブジェクトからのJAXBContext
オブジェクトの作成
コンテキスト・パスおよびクラスローダーからのJAXBContext
オブジェクトの作成
JAXBContext
クラスは、JAXB APIに対するクライアントのエントリ・ポイントを提供します。JAXBContext
クラスは、メタデータの解釈、スキーマ・ファイルの生成、およびJAXBオブジェクト(Marshaller
、Unmarshaller
、Binder
、Introspector
およびValidator
)のインスタンスの作成を行います。
Object-XMLには、JAXBContext
オブジェクトを作成する際にいくつかのオプションが用意されています。次のいずれかから開始できます。
JAXBの注釈の付いた1つ以上のクラスのリスト
Javaクラスのマッピングが定義された1つ以上のEclipseLink XMLバインディング・ドキュメントのリスト
クラスとXMLバインディングの組合せ
コンテキスト・パスのリスト
sessions.xml
に定義されているEclipseLinkセッションを参照するセッション名のリスト
2.2.2.1項「JAXBコンテキストおよびJAXBコンテキスト・ファクトリ」に説明されている入力オプションに加えて、Object-XMLには、MetadataSource
オブジェクトの概念が用意されています。このオブジェクトによって、マッピング情報をアプリケーションの外部に保存して、アプリケーションのJAXBContext
オブジェクトが作成またはリフレッシュされるときにそれを取得できるようになります。MetadataSource
の実装の詳細は、『Oracle Fusion Middleware Oracle TopLinkによるJAXBアプリケーションの開発』を参照してください。
EclipseLinkでは、すべての標準JAXB注釈を使用できます。EclipseLinkには、標準注釈に加えて、EclipseLink XMLバインディング・ドキュメントという、メタデータを表現する別の方法も用意されています。XMLバインディングは、マッピング情報を実際のJavaクラスから分離できるだけでなく、次のような高度なメタデータ・タスクにも使用できます。
追加のマッピング情報で、既存の注釈を拡張またはオーバーライドできます。
Java注釈を使用せずに、すべてのマッピング情報を外部指定できます。
複数のバインディング文書にまたがるマッピングを定義できます。
具体的なJavaフィールドに対応しない仮想マッピングを指定できます。
詳細は、『Oracle Fusion Middleware Oracle TopLinkによるJAXBアプリケーションの開発』を参照してください。
Java注釈を使用して、プロジェクトにJAXBの機能を指定できます。EclipseLinkには、Java注釈に加えて、eclipselink-oxm.xml
というXMLマッピング構成ファイルが用意されています。このマッピング・ファイルには、標準のJAXBマッピングと、高度なマッピング・タイプ用の構成オプションが含まれています。eclipselink-oxm.xml
ファイルを、ソース・コードのJAXB注釈のかわりに使用するか、JAXB注釈をオーバーライドするために使用できます。
注意: このマッピング・ファイルを使用すると、多くの高度な機能が有効になりますが、他のJAXB実装に対するモデルの移植性がなくなる場合があります。 |
XMLマッピングは、オブジェクトのデータ・メンバーを、構造がXMLスキーマ・ドキュメント(XSD)により定義されているXML文書のXML要素に変換します。様々なXMLマッピング・タイプを使用して、XMLの単純および複合型の組合せにJavaオブジェクトの属性をマップできます。
クラスは複合型にマップされ、オブジェクトの関係はXML要素にマップされ、単純属性はテキスト・ノードとXML属性にマップされます。Object-XMLを使用する場合の真価は、オブジェクト属性をXML文書にマッピングする際に、XPath文を使用してXMLデータの場所を指定できることにあります。
EclipseLinkでは、クラスのディスクリプタに各クラスのXMLマッピングを格納します。EclipseLinkでは、ディスクリプタを使用してXML文書からマップされたオブジェクトをインスタンス化し、新規または変更済のオブジェクトをXML文書として格納します。
EclipseLinkには、JAXB仕様には定義されていないXMLマッピングが用意されています。Object-XMLの拡張機能には、EclipseLinkの注釈を介して使用できるものと、基礎となるメタデータに対するプログラムの変更が必要なものがあります。
これらのマッピングの詳細は、『Oracle Fusion Middleware Oracle TopLinkによるJAXBアプリケーションの開発』を参照してください。
EclipseLink Object-XMLでは、従来のJavaのアクセス・メソッドを使用してオブジェクトの値を取得および設定する方法に加えて、XPath文を使用して値にアクセスすることもできます。EclipseLinkのJAXBContext
オブジェクトには、XPathで値を取得および設定できる特別なAPIがあります。詳細は、『Oracle Fusion Middleware Oracle TopLinkによるJAXBアプリケーションの開発』を参照してください。