ヘッダーをスキップ
Oracle TopLink開発者ガイド
10g(10.1.3.1.0)
B31861-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

47 オブジェクト・リレーショナル・マッピングの構成

この章では、オブジェクト・リレーショナル・マッピングの構成方法について説明します。

表47-1に、構成可能なオブジェクト・リレーショナル・マッピングのタイプと、そのタイプで対応している構成可能オプションが記載されたタイプ別の章への相互参照を示します。

表47-1 オブジェクト・リレーショナル・マッピングの構成

作成対象 参照先

オブジェクト・リレーショナルの構造マッピング


第48章「オブジェクト・リレーショナルの構造マッピングの構成」


オブジェクト・リレーショナルの参照マッピング


第49章「オブジェクト・リレーショナルの参照マッピングの構成」


オブジェクト・リレーショナルの配列マッピング


第50章「オブジェクト・リレーショナルの配列マッピングの構成」


オブジェクト・リレーショナルのオブジェクト配列マッピング


第51章「オブジェクト・リレーショナルのオブジェクト配列マッピングの構成」


オブジェクト・リレーショナルのネストした表マッピング


第52章「オブジェクト・リレーショナルのネストした表マッピングの構成」



表47-2に、複数のオブジェクト・リレーショナル・マッピング・タイプによって共有される構成可能オプションを示します。

詳細は、次を参照してください。

一般的なオブジェクト・リレーショナル・マッピング・オプションの構成

表47-2に、複数のオブジェクト・リレーショナル・マッピング・タイプによって共有される構成可能オプションを示します。ここで説明する構成可能オプションの他に、表47-1に示すような固有の「オブジェクト・リレーショナル・マッピング・タイプ」で説明したオプションも構成します。

表47-2 オブジェクト・リレーショナル・マッピングの一般的なオプション

オプション タイプ TopLink Workbench
Java

「参照クラスの構成」


基本

サポートされていない
サポートされている

「属性名の構成」


基本

サポートされていない
サポートされている

「フィールド名の構成」


基本

サポートされていない
サポートされている

「構造名の構成」


基本

サポートされていない
サポートされている

「読取り専用マッピングの構成」


基本

サポートされていない
サポートされている

「メソッド・アクセスの構成」


詳細

サポートされていない
サポートされている

「インダイレクションの構成」


詳細

サポートされていない
サポートされている

「コンテナ・ポリシーの構成」


詳細

サポートされていない
サポートされている

参照クラスの構成

他のクラスへのリレーションシップを持つ属性をマップする場合は、参照クラス(マップする属性が参照するJavaクラス)を指定する必要があります。

表47-3では、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。

Javaの使用

マップする属性のターゲット・クラスを指定するには、oracle.toplink.mappings.ForeignReferenceMappingメソッドsetReferenceClassを使用します。

例47-1では、このメソッドの使用方法を示します。Employeeクラスのmanager属性をマップするReferenceMappingもともに使用されています。

例47-1 Javaでの参照クラスの構成

ReferenceMapping managerMapping = new new ReferenceMapping();
managerMapping.setReferenceClass("Employee.class");
managerMapping.setAttributeName("manager");

属性名の構成

すべてのオブジェクト・リレーショナル・マッピングでは、Javaオブジェクトの属性をデータベースのフィールドにマップします。属性名はマップする属性の名前です。この名前は参照クラスで指定された名前です(「参照クラスの構成」を参照)。

表47-4では、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。

Javaの使用

マップする属性の名前を指定するには、oracle.toplink.mappings.DatabaseMappingメソッドsetAttributeNameを使用します。

例47-2では、このメソッドの使用方法を示します。Employeeクラスのmanager属性をマップするReferenceMappingもともに使用されています。

例47-2 Javaでの属性名の構成

ReferenceMapping managerMapping = new new ReferenceMapping();
managerMapping.setReferenceClass("Employee.class");
managerMapping.setAttributeName("manager");

フィールド名の構成

すべてのオブジェクト・リレーショナル・マッピングでは、指定した属性のマップ先にするデータベース・フィールドの名前が必要になります。このフィールド名には、データベース表の列名、またはデータベースで作成された特定のオブジェクト・タイプに属するフィールドの名前を指定できます。

表47-5では、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。

Javaの使用

オブジェクト・リレーショナル・マッピングのメソッドsetFieldNameを使用して、属性をマップするデータベース・フィールドを指定します。

例47-3に、このメソッドの使用方法を示します。Employeeクラスの属性phoneをデータベース・フィールド名PHONE_NUMBERにマップするObjectArrayMappingもともに使用されています。

例47-3 Javaでのフィールド名の構成

ObjectArrayMapping phonesMapping = new ObjectArrayMapping();
managerMapping.setReferenceClass("Employee.class");
phonesMapping.setAttributeName("phone");
phonesMapping.setFieldName("PHONE_NUMBER");

構造名の構成

いくつかのオブジェクト・リレーショナル・マッピングでは、マップしようとしているフィールドのデータ・タイプまたは構造名の指定が必須です。構造名は、フィールドを定義する配列または表タイプの名前です。

表47-6は、どのオブジェクト・リレーショナル・マッピングがこのオプションをサポートしているかを示します。

Javaの使用

マップする属性の構造を指定するには、オブジェクト・リレーショナル・マッピングのメソッドsetStructureNameを使用します。

例47-4に、このメソッドの使用方法を示します。Employeeクラスの属性phonesをタイプPHONE_ARRAY_TYPEのデータベース・フィールド名PHONE_NUMBERSにマップするObjectArrayMappingもともに使用されています。

例47-4 Javaでの構造名の構成

ObjectArrayMapping phonesMapping = new ObjectArrayMapping();
managerMapping.setReferenceClass("Employee.class");
phonesMapping.setAttributeName("phones");
phonesMapping.setFieldName("PHONE_NUMBERS");
phonesMapping.setStructureName("PHONE_ARRAY_TYPE");