この章では、オブジェクト・リレーショナル・データ・タイプ・マッピングの構成方法について説明します。
この章の内容は次のとおりです。
複数のマッピング・タイプに共通のTopLinkマッピング・オプションを構成する方法の詳細は、第121章「マッピングの構成」を参照してください。
TopLinkマッピングの作成方法の詳細は、第120章「マッピングの作成」を参照してください。
表41-1は、構成可能なオブジェクト・リレーショナル・データ・タイプ・マッピングのタイプと、そのタイプで対応している構成可能オプションが記載されたタイプ別の章への相互参照を示します。
表41-1 オブジェクト・リレーショナル・データ・タイプ・マッピングの構成
作成対象 | 参照先 |
---|---|
オブジェクト・リレーショナル・データ・タイプの構造マッピング(40.1.1項「オブジェクト・リレーショナル・データ・タイプの構造マッピング」を参照) |
第42章「オブジェクト・リレーショナル・データ・タイプの構造マッピングの構成」 |
オブジェクト・リレーショナル・データ・タイプの参照マッピング(40.1.2項「オブジェクト・リレーショナル・データ・タイプの参照マッピング」を参照) |
第43章「オブジェクト・リレーショナル・データ・タイプの参照マッピングの構成」 |
オブジェクト・リレーショナル・データ・タイプの配列マッピング(40.1.3項「オブジェクト・リレーショナル・データ・タイプの配列マッピング」を参照) |
第44章「オブジェクト・リレーショナル・データ・タイプの配列マッピングの構成」 |
オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング(40.1.4項「オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング」を参照) |
第45章「オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピングの構成」 |
オブジェクト・リレーショナル・データ・タイプのネストした表マッピング(40.1.5項「オブジェクト・リレーショナル・データ・タイプのネストした表マッピング」を参照) |
第46章「オブジェクト・リレーショナル・データ・タイプのネストした表マッピングの構成」 |
詳細は、次を参照してください。
表41-2は、複数のオブジェクト・リレーショナル・データ・タイプ・マッピングのタイプによって共有される構成可能オプションを示します。ここで説明する構成可能オプション以外にも、表41-1に示すように、特定のオブジェクト・リレーショナル・データ・タイプ・マッピングのタイプ(40.1項「オブジェクト・リレーショナル・データ・タイプ・マッピングのタイプ」を参照)について説明しているオプションも構成する必要があります。
表41-2 オブジェクト・リレーショナル・データ・タイプ・マッピングの一般的なオプション
構成オプション | Oracle JDeveloper |
TopLink Workbench |
Java |
---|---|---|---|
参照クラス(41.3項「参照クラスの構成」を参照) |
![]() |
![]() |
![]() |
属性名(41.4項「属性名の構成」を参照) |
![]() |
![]() |
![]() |
フィールド名(41.5項「フィールド名の構成」を参照) |
![]() |
![]() |
![]() |
構造名(41.6項「構造名の構成」を参照) |
![]() |
![]() |
![]() |
読取り専用(121.2項「読取り専用マッピングの構成」を参照) |
![]() |
![]() |
![]() |
メソッドまたは直接フィールド・アクセス(121.6項「マッピング・レベルでのメソッドまたは直接フィールド・アクセスの構成」を参照) |
![]() |
![]() |
![]() |
インダイレクション(遅延ロード)(121.3項「インダイレクション(遅延ロード)の構成」を参照) |
![]() |
![]() |
![]() |
コンテナ・ポリシー(121.14項「コンテナ・ポリシーの構成」を参照) |
![]() |
![]() |
![]() |
他のクラスへのリレーションシップを持つ属性をマップする場合は、参照クラス(マップする属性が参照するJavaクラス)を指定する必要があります。
表41-3では、どのオブジェクト・リレーショナル・データ・タイプ・マッピングがこのオプションをサポートしているかを示します。
表41-3 マッピングでの参照クラスのサポート
マッピング | Oracle JDeveloperの使用方法 | TopLink Workbenchの使用方法 | Javaを使用した参照クラスの構成方法 |
---|---|---|---|
オブジェクト・リレーショナル・データ・タイプの構造マッピング(40.1.1項「オブジェクト・リレーショナル・データ・タイプの構造マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプの参照マッピング(40.1.2項「オブジェクト・リレーショナル・データ・タイプの参照マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプの配列マッピング(40.1.3項「オブジェクト・リレーショナル・データ・タイプの配列マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング(40.1.4項「オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプのネストした表マッピング(40.1.5項「オブジェクト・リレーショナル・データ・タイプのネストした表マッピング」を参照) |
|
|
|
マップする属性のターゲット・クラスを指定するには、oracle.toplink.mappings.ForeignReferenceMapping
メソッドsetReferenceClass
を使用します。
例41-1は、このメソッドの使用方法を示します。Employee
クラスのmanager
属性をマップするReferenceMapping
もともに使用されています。
例41-1 Javaでの参照クラスの構成
public void customize(ClassDescriptor descriptor) { ReferenceMapping managerMapping = new ReferenceMapping(); managerMapping.setReferenceClass("Employee.class"); // set reference class managerMapping.setAttributeName("manager"); // add this mapping to descriptor descriptor.addMapping(managerMapping); }
詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。
すべてのオブジェクト・リレーショナル・データ・タイプ・マッピングでは、Javaオブジェクトの属性をデータベースのフィールドにマップします。属性名はマップする属性の名前です。この名前は参照クラスで指定された名前です(41.3項「参照クラスの構成」を参照)。
表41-4では、どのオブジェクト・リレーショナル・データ・タイプ・マッピングがこのオプションをサポートしているかを示します。
表41-4 マッピングでの属性名のサポート
マッピング | Oracle JDeveloperの使用方法 | TopLink Workbenchの使用方法 | Javaを使用した属性名の構成方法 |
---|---|---|---|
オブジェクト・リレーショナル・データ・タイプの構造マッピング(40.1.1項「オブジェクト・リレーショナル・データ・タイプの構造マッピング」を参照) |
|
![]() |
|
オブジェクト・リレーショナル・データ・タイプの参照マッピング(40.1.2項「オブジェクト・リレーショナル・データ・タイプの参照マッピング」を参照) |
|
![]() |
|
オブジェクト・リレーショナル・データ・タイプの配列マッピング(40.1.3項「オブジェクト・リレーショナル・データ・タイプの配列マッピング」を参照) |
|
![]() |
|
オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング(40.1.4項「オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング」を参照) |
|
![]() |
|
オブジェクト・リレーショナル・データ・タイプのネストした表マッピング(40.1.5項「オブジェクト・リレーショナル・データ・タイプのネストした表マッピング」を参照) |
|
![]() |
|
マップする属性の名前を指定するには、oracle.toplink.mappings.DatabaseMapping
メソッドsetAttributeName
を使用します。
例41-2は、このメソッドの使用方法を示します。Employee
クラスのmanager
属性をマップするReferenceMapping
もともに使用されています。
例41-2 Javaでの属性名の構成
public void customize(ClassDescriptor descriptor) {
ReferenceMapping managerMapping = new new ReferenceMapping();
managerMapping.setReferenceClass("Employee.class");
managerMapping.setAttributeName("manager"); // set attribute name
// add this mapping to descriptor
descriptor.addMapping (managerMapping);
}
詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。
すべてのオブジェクト・リレーショナル・データ・タイプ・マッピングでは、指定した属性のマップ先にするデータベース・フィールドの名前が必要になります。このフィールド名には、データベース表の列名、またはデータベースで作成された特定のオブジェクト・タイプに属するフィールドの名前を指定できます。
表41-5では、どのオブジェクト・リレーショナル・データ・タイプ・マッピングがこのオプションをサポートしているかを示します。
表41-5 マッピングでのフィールド名のサポート
マッピング | Oracle JDeveloperの使用方法 | TopLink Workbenchの使用方法 | Javaを使用したフィールド名の構成方法 |
---|---|---|---|
オブジェクト・リレーショナル・データ・タイプの構造マッピング(40.1.1項「オブジェクト・リレーショナル・データ・タイプの構造マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプの参照マッピング(40.1.2項「オブジェクト・リレーショナル・データ・タイプの参照マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプの配列マッピング(40.1.3項「オブジェクト・リレーショナル・データ・タイプの配列マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング(40.1.4項「オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプのネストした表マッピング(40.1.5項「オブジェクト・リレーショナル・データ・タイプのネストした表マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプ・マッピングのメソッドsetFieldName
を使用して、属性をマップするデータベース・フィールドを指定します。
例41-3は、このメソッドの使用方法を示します。Employee
クラスの属性phone
をデータベース・フィールド名PHONE_NUMBER
にマップするObjectArrayMapping
もともに使用されています。
例41-3 Javaでのフィールド名の構成
public void customize(ClassDescriptor descriptor) { ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); phonesMapping.setReferenceClass("Employee.class"); phonesMapping.setAttributeName("phone"); phonesMapping.setFieldName("PHONE_NUMBER"); // set field name // add this mapping to descriptor descriptor.addMapping (phonesMapping); }
詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。
いくつかのオブジェクト・リレーショナル・データ・タイプ・マッピングでは、マップするフィールドのデータ・タイプまたは構造名の指定が必須です。構造名は、フィールドを定義する配列または表タイプの名前です。
表41-6では、どのオブジェクト・リレーショナル・データ・タイプ・マッピングがこのオプションをサポートしているかを示します。
表41-6 マッピングでの構造名のサポート
マッピング | Oracle JDeveloperの使用方法 | TopLink Workbenchの使用方法 | Javaを使用した構造名の構成方法 |
---|---|---|---|
オブジェクト・リレーショナル・データ・タイプの構造マッピング(40.1.1項「オブジェクト・リレーショナル・データ・タイプの構造マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプの参照マッピング(40.1.2項「オブジェクト・リレーショナル・データ・タイプの参照マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプの配列マッピング(40.1.3項「オブジェクト・リレーショナル・データ・タイプの配列マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング(40.1.4項「オブジェクト・リレーショナル・データ・タイプのオブジェクト配列マッピング」を参照) |
|
|
|
オブジェクト・リレーショナル・データ・タイプのネストした表マッピング(40.1.5項「オブジェクト・リレーショナル・データ・タイプのネストした表マッピング」を参照) |
|
|
|
マップする属性の構造を指定するには、オブジェクト・リレーショナル・データ・タイプ・マッピングのメソッドsetStructureName
を使用します。
例41-4は、このメソッドの使用方法を示します。Employee
クラスの属性phones
をタイプPHONE_ARRAY_TYPE
のデータベース・フィールド名PHONE_NUMBERS
にマップするObjectArrayMapping
もともに使用されています。
例41-4 Javaでの構造名の構成
public void customize(ClassDescriptor descriptor) { ObjectArrayMapping phonesMapping = new ObjectArrayMapping(); phonesMapping.setReferenceClass("Employee.class"); phonesMapping.setAttributeName("phones"); phonesMapping.setFieldName("PHONE_NUMBERS"); phonesMapping.setStructureName("PHONE_ARRAY_TYPE"); // set structure name // add this mapping to descriptor descriptor.addMapping (phonesMapping); }
詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。