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

戻る
戻る
 
次へ
次へ
 

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

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

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

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

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

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

外部キー・ペアの構成

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

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

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

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

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

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

TopLink Workbenchの使用

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

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

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

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

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

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

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


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

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

TopLink Workbenchの使用

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

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

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

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

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

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

フィールド 説明
ファンクション名 このタイプのコール(「オブジェクトの読取り」または「すべて読取り」)がEISに対して起動するEISファンクションの名前。
入力レコード名 入力レコードの作成時に、J2Cアダプタに渡される名前。
入力ルート要素名 入力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から)。