ヘッダーをスキップ
Oracle Fusion Middleware Oracle TopLink開発者ガイド
11gリリース1(11.1.1)
B56246-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

この章では、リレーショナル集約オブジェクト・マッピングを使用するために構成する必要がある様々なコンポーネントについて説明します。


注意:

ソース・オブジェクトのディスクリプタのリレーショナル集約オブジェクト・マッピングを構成します。ただし、構成する前に、ターゲット・オブジェクトのディスクリプタを集約として指定する必要があります(23.6項「クラスまたは集約タイプとしてのリレーショナル・ディスクリプタの構成」を参照)。

この章の内容は次のとおりです。

複数のマッピング・タイプに共通のTopLinkマッピング・オプションを構成する方法の詳細は、第121章「マッピングの構成」を参照してください。

TopLinkマッピングの作成方法の詳細は、第120章「マッピングの作成」を参照してください。

表37-1は、リレーショナル集約オブジェクト・マッピングの構成可能オプションを示します。

37.1 リレーショナル集約オブジェクト・マッピングの構成の概要

表37-1は、リレーショナル集約オブジェクト・マッピングの構成可能オプションを示します。

表37-1 リレーショナル集約オブジェクト・マッピングの構成可能オプション

オプション Oracle JDeveloper
TopLink Workbench
Java

参照ディスクリプタ(28.4項「参照ディスクリプタの構成」を参照)

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

メソッドまたは直接フィールド・アクセス(121.6項「マッピング・レベルでのメソッドまたは直接フィールド・アクセスの構成」を参照)

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

読取り専用マッピング(121.2項「読取り専用マッピングの構成」を参照)

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

許容NULL値(37.3項「許容NULL値の構成」を参照)

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

マッピング・コメント(121.8項「マッピング・コメントの構成」を参照)

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

集約フィールド(37.2項「集約フィールドの構成」を参照)

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

例37-1は、Javaコードによる集約オブジェクト・マッピングの作成方法とディスクリプタへの追加方法を示します。

例37-1 集約オブジェクト・マッピング

public void customize(ClassDescriptor descriptor) {
    AggregateObjectMapping mapping = new AggregateObjectMapping();

    // configure mapping
    ...

    // add mapping to descriptor
    descriptor.addMapping(mapping);
}

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

37.2 集約フィールドの構成

ディスクリプタを集約ディスクリプタとして定義する場合、TopLinkではターゲット・クラスのフィールドごとに1つのマッピング・タイプを指定できますが、フィールドとデータベース表の関連付けは、ソース・クラス・ディスクリプタで集約オブジェクト・マッピングを構成した後で可能になります。つまり、ターゲット・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる方法を定義し、ソース・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる場所を定義する、ということです。

この項では、各ターゲット・クラス・フィールドがマップされる場所を定義するため、ソース・クラス・ディスクリプタを構成する方法について説明します。

各ターゲット・クラス・フィールドがマップされる方法を定義するためのターゲット・クラス・ディスクリプタの構成方法の詳細は、23.6項「クラスまたは集約タイプとしてのリレーショナル・ディスクリプタの構成」を参照してください。

37.2.1 TopLink Workbenchを使用した集約フィールドの構成方法

集約マッピングのマップされたフィールドを指定するには、次の手順を実行します。

  1. ナビゲータでマップされた属性を選択します。そのプロパティがエディタに表示されます。

  2. 「フィールド」タブをクリックします。「フィールド」タブが表示されます。

    図37-1 「フィールド」タブ

    図37-1の説明が続きます
    「図37-1 「フィールド」タブ」の説明

次の情報を参照し、タブの各フィールドを指定します。

フィールド 説明
フィールドの説明 この列は、そのディスクリプタが集約として定義されるターゲット・オブジェクトからのフィールドの名前を示します(23.6項「クラスまたは集約タイプとしてのリレーショナル・ディスクリプタの構成」を参照)。これらは表示専用であり、変更できません。
フィールド この列を使用して、TopLinkが対応するターゲット・オブジェクト・フィールドにマップするソース・オブジェクト・データベース表フィールドを選択します。

37.2.2 Javaを使用した集約フィールドの構成方法

AggregateObjectMappingメソッドのaddFieldNameTranslationを使用して、ソース表内のフィールド名を集約ディスクリプタ内のフィールド名にマップするためのフィールド名変換を設定できます。

AggregateObjectMappingで使用可能なメソッドの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。

37.3 許容NULL値の構成

集約オブジェクトのデータベース行のすべてのフィールドがnullである場合、デフォルトでは、null値を集約オブジェクトに指定するのとは対照的に、TopLinkによりnullが適切なソース・オブジェクトに配置されます。

37.3.1 TopLink Workbenchを使用した許容NULL値の構成方法

マッピングにNULL値を含めるようにするには、次の手順を実行します。

  1. ナビゲータでマップされた属性を選択します。そのプロパティがエディタに表示されます。

  2. 「一般」タブをクリックします。「一般」タブが表示されます。

    図37-2 「一般」タブ、「NULLを許容」オプション

    図37-2の説明が続きます
    「図37-2「一般」タブ、「NULLを許容」オプション」の説明

「NULLを許容」オプションを選択して、このマッピングにNULL値が含められるようにします。

37.3.2 Javaを使用した許容NULL値の構成方法

AggregateObjectMappingメソッドのallowNulldontAllowNullを使用して、NULL値を許容するかどうかを構成できます。

AggregateObjectMappingで使用可能なメソッドの詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。