この章では、EISの1対多マッピングを使用するために構成する必要のある様々なコンポーネントについて説明します。
詳細は、次を参照してください。
表60-1に、EISの1対多マッピングの構成可能なオプションを示します。
表60-1に、EISの1対多マッピングの構成可能なオプションを示します。
表60-1 EISの1対多マッピングの構成可能オプション
オプション | タイプ | TopLink Workbench |
Java |
---|---|---|---|
|
基本 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
「プライベート・リレーションシップまたは独立したリレーションシップの構成」 |
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
|
詳細 |
![]() |
![]() |
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フィールドの値を使用してターゲット・オブジェクトの該当するインスタンスを取得します。
1対多のEISマッピング用にソースおよびターゲットXMLフィールドのペアを指定するには、次の手順を実行します。
次の情報を参照し、「一般」タブの「外部キー」フィールドを完成させます。
フィールド | 説明 |
---|---|
ターゲットにある外部キー | ターゲットにキーのある状態で1対多EISマッピングを作成するかどうかを選択します(「ターゲットにキーのある状態でのEIS 1対多マッピング」を参照)。 |
ソースにある外部キー | ソースにキーのある状態で1対多EISマッピングを作成するかどうかを選択します(「ソースにキーのある状態でのEIS 1対多マッピング」を参照)。 |
グループ化要素 | 外部キー・ペアがソース・オブジェクトのEISレコードでグループ化される要素を指定します。
ソースおよびターゲットXMLフィールドのペアを1つのみ指定した場合、これはオプションです。 ソースおよびターゲットXMLフィールドのペアを複数指定した場合、これは必須です。 |
フィールド・ペア | 「追加」をクリックして、ソースおよびターゲットXMLフィールドの1ペアを追加します。
「フィールド・ペアの指定」ダイアログ・ボックスを開きます。「参照」をクリックして、「ソースXPath」および「ターゲットXPath」フィールドの外部キーを追加します。 |
TopLinkの問合せおよび式フレームワークでは、すべての問合せの削除をサポートします。J2CアダプタがEISのすべて削除ファンクションにアクセスできる場合は、すべて削除インタラクションを構成してTopLinkですべての問合せを削除できるようにします。
EISの1対多マッピングについて、「すべて削除インタラクション」を指定するには、次の手順を実行します。
ナビゲータでマップされた属性を選択します。そのプロパティがエディタに表示されます。
「すべて削除インタラクション」タブをクリックします。「すべて削除インタラクション」タブが表示されます。
次の情報を参照し、「すべて削除インタラクション」タブの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
ファンクション名 | このタイプのコール(「オブジェクトの読取り」または「すべて読取り」)がEISに対して起動するEISファンクションの名前。 |
入力レコード名 | 入力レコードの作成時に、J2Cアダプタに渡される名前。 |
入力ルート要素名 | 入力DOMに使用されるルート要素名。 |
入力引数 | 引数レコードのインタラクション・フィールドまたはXPathノードにマップされる問合せ引数名。
たとえば、XMLレコードを使用している場合、このオプションを使用して入力引数 |
出力引数 | ディスクリプタのマッピングに使用されるレコード内の正しいノードにマップされる、結果のレコード・フィールドまたはXPathノード。
たとえば、XMLレコードを使用している場合、このオプションを使用して出力 対話でディスクリプタのマッピングと一致するXML結果が返される場合、出力引数は必要ありません。 |
入力結果のパス | EISインタラクションが、XMLレコードにネストされるインタラクション引数を予期する場合に、このオプションを使用します。
たとえば、引数を最初にルート要素 |
出力結果のパス | このタイプのコール(「オブジェクトの読取り」または「すべて読取り」)がEISに対して起動するEISファンクションの名前。 |
プロパティ | EISプラットフォームが必要とするプロパティ。たとえば、プロパティ名operation (AQPlatform.QUEUE_OPERATION から)およびプロパティ値enqueue (AQPlatform.ENQUEUE から)。 |