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

戻る
戻る
 
次へ
次へ
 

84 EISの1対多マッピングの構成

この章では、EISの1対多マッピングを使用するために構成する必要のある様々なコンポーネントについて説明します。

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

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

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

84.1 EISの1対多マッピング構成の概要

表84-1は、EISの1対多マッピングの構成可能オプションを示します。

表84-1 EISの1対多マッピングの構成可能オプション

構成オプション Oracle JDeveloper
TopLink Workbench
Java

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

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

外部キー・ペア(84.2項「外部キー・ペアの構成」を参照)

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

双方向リレーションシップ(121.18項「双方向リレーションシップの構成」を参照)

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

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

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

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

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

プライベート・リレーションシップまたは独立したリレーションシップ(121.7項「プライベート・リレーションシップまたは独立したリレーションシップの構成」を参照)

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

インダイレクション(遅延ロード)(121.3項「インダイレクション(遅延ロード)の構成」を参照)

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

コンテナ・ポリシー(121.14項「コンテナ・ポリシーの構成」を参照)

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

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

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

選択インタラクション(78.4項「選択インタラクションの構成」を参照)

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

すべて削除インタラクション(84.3項「すべて削除インタラクションの構成」を参照)

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

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

84.2 外部キー・ペアの構成

1対多のEISマッピングでは、ソースおよびターゲット・オブジェクトのフィールドを1つ以上指定して、ターゲット・オブジェクトの属性にソース・オブジェクトの属性を関連付けます。

XMLレコードを使用するソースにキーのある状態の1対多のEISマッピング(77.8.1項「ソースにキーのある状態でのEIS 1対多マッピング」を参照)では、TopLinkで単純な値としてターゲットのXMLフィールドの値をソース・オブジェクトのレコードに置きます。デフォルトではこのような値はグループ化されません(例84-1を参照)。

例84-1 グループ化のないソース・オブジェクトXMLレコード

<employee>
    <name>Jane</name>
    <project-id>3</project-id>
    <project-id>4</project-id>
</employee>

ソースおよびターゲットXMLフィールドのペアを複数指定した場合は、グループ化要素を指定する必要があります(例84-2を参照)。

例84-2 グループ化のあるソース・オブジェクトXMLレコード

<employee>
    <name>Jane</name>
    <project>
        <project-id>3</project-id>
        <project-name>Project 3</project-name>
    </project>
    <project>
        <project-id>4</project-id>
        <project-name>Project 4</project-name>
    </project>
</employee>

XMLレコードを使用する、ターゲットにキーのある状態の1対1のEISマッピング(77.8.2項「ターゲットにキーのある状態でのEIS 1対多マッピング」を参照)では、TopLinkで選択インタラクションのソースXMLフィールドの値を使用してターゲット・オブジェクトの該当するインスタンスを取得します。

84.2.1 TopLink Workbenchを使用した外部キー・ペアの構成方法

1対多のEISマッピング用にソースおよびターゲットXMLフィールドのペアを指定するには、次の手順を実行します。

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

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

    図84-1 「一般」タブ、「外部キー」フィールド

    図84-1の説明が続きます
    「図84-1 「一般」タブ、「外部キー」フィールド」の説明

次の情報を参照し、「一般」タブの「外部キー」フィールドを完成させます。

フィールド 説明
ターゲットにある外部キー ターゲットにキーのある状態で1対多EISマッピングを作成するかどうかを選択します(77.8.2項「ターゲットにキーのある状態でのEIS 1対多マッピング」を参照)。
ソースにある外部キー ソースにキーのある状態で1対多EISマッピングを作成するかどうかを選択します(77.8.1項「ソースにキーのある状態でのEIS 1対多マッピング」を参照)。
    グループ化要素 外部キー・ペアがソース・オブジェクトのEISレコードでグループ化される要素を指定します。

ソースおよびターゲットXMLフィールドのペアを1つのみ指定した場合、これはオプションです。

ソースおよびターゲットXMLフィールドのペアを複数指定した場合、これは必須です。

    フィールド・ペア 「追加」をクリックして、ソースおよびターゲットXMLフィールドの1ペアを追加します。

「フィールド・ペアの指定」ダイアログ・ボックスを開きます。「参照」をクリックして、「ソースXPath」および「ターゲットXPath」フィールドの外部キーを追加します。


84.3 すべて削除インタラクションの構成

TopLinkの問合せおよび式フレームワークでは、すべての問合せの削除をサポートします。JCAアダプタがEISのすべて削除ファンクションにアクセスできる場合は、すべて削除インタラクションを構成してTopLinkですべての問合せを削除できるようにします。

84.3.1 TopLink Workbenchを使用したすべて削除インタラクションの構成方法

EISの1対多マッピングについて、「すべて削除インタラクション」を指定するには、次の手順を実行します。

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

  2. 「すべて削除インタラクション」タブをクリックします。「すべて削除インタラクション」タブが表示されます。

    図84-2 「すべて削除インタラクション」タブ

    図84-2の説明が続きます
    「図84-2 「すべて削除インタラクション」の説明

次の情報を参照し、「すべて削除インタラクション」タブの各フィールドにデータを入力します。

フィールド 説明
ファンクション名 このタイプのコール(「オブジェクトの読取り」または「すべて読取り」)がEISに対して起動するEISファンクションの名前。
入力レコード名 入力レコードの作成時に、JCAアダプタに渡される名前。
入力ルート要素名 入力DOMに使用されるルート要素名。
入力引数 引数レコードのインタラクション・フィールドまたはXPathノードにマップされる問合せ引数名。

たとえば、XMLレコードを使用している場合、このオプションを使用して入力引数nameをXPath name/first-nameにマップします。

出力引数 ディスクリプタのマッピングに使用されるレコード内の正しいノードにマップされる、結果のレコード・フィールドまたはXPathノード。

たとえば、XMLレコードを使用している場合、このオプションを使用して出力fnamename/first-nameにマップします。

対話でディスクリプタのマッピングと一致するXML結果が返される場合、出力引数は必要ありません。

入力結果のパス EISインタラクションが、XMLレコードにネストされるインタラクション引数を予期する場合に、このオプションを使用します。

たとえば、引数を最初にルート要素exec-find-orderの下に、次にarguments要素の下にネストする必要がある場合は、argumentsを指定します。

出力結果のパス このタイプのコール(「オブジェクトの読取り」または「すべて読取り」)がEISに対して起動するEISファンクションの名前。
プロパティ EISプラットフォームが必要とするプロパティ。たとえば、プロパティ名operationAQPlatform.QUEUE_OPERATIONから)およびプロパティ値enqueueAQPlatform.ENQUEUEから)。