OracleAS TopLinkでは、参照を使用して、外部キー情報を保持します。OracleAS TopLinkでは、参照を外部キーが含まれる表のプロパティとして定義します。これは、データベースに存在する実際の制約に必ずしも対応するとはかぎりません。
表をデータベースからインポートすると、OracleAS TopLinkにより、既存のデータベース制約に対応する参照が作成されます(ドライバによってサポートされている場合)。また、データベースで同様の制約を作成しなくても、OracleAS TopLink Mapping Workbenchで参照をいくつでも定義できます。
リレーションシップ・マッピングおよびディスクリプタの複数表の関連を定義する際、OracleAS TopLinkによってこれらの参照が使用されます。
外部キーは、別の表内の一意のキー(通常は主キー)を参照する列の組合せです。主キーと同様、外部キーは任意の数のフィールドで、これらすべてが1つの単位として扱われます。外部キーと参照先の親キーは、フィールドの数およびタイプが同じである必要があります。
ターゲット・オブジェクトをインスタンス化できるよう、リレーションシップ・マッピングでは、外部キーを使用してデータベース内の情報を検索します。たとえば、すべてのEmployeeが、(独自のディスクリプタおよび表を所有する)Addressのインスタンスを含むaddress属性を所有している場合、address属性に対する1対1マッピングは、特定のEmployeeのアドレスを見つけるための外部キー情報を指定します。
OracleAS TopLinkでは、マッピングで、外部キーを外部キーおよびターゲット外部キーの2つのカテゴリに分類します。
外部キーでは、キーはマッピング自体のディスクリプタに関連付けられた表に存在します。前述の例の場合、ADDRESSへの外部キーは、EMPLOYEE表に存在することになります。
ターゲット外部キーでは、参照の方向は、ターゲット・オブジェクトの表からマッピングのディスクリプタの表のキーに戻ります。前述の例の場合、ADDRESS表には、EMPLOYEEへの外部キーが存在することになります。
|
注意: マッピングを定義する前に、外部キーとターゲット外部キーの違いを十分に理解してください。 |
表をデータベースからインポートすると、OracleAS TopLinkにより、既存のデータベース制約に対応する参照が作成されます(ドライバによってサポートされている場合)。また、データベースで同様の制約を作成しなくても、OracleAS TopLinkで参照を定義できます。
表に対する既存の参照を表示するには、「参照」タブ(図3-5を参照)を使用します。「データベース上」オプションを使用する参照により、参照に対応する制約が作成されます。
|
注意: データベース・ドライバによってサポートされている必要があります。 |
外部キーを作成するには:
「ナビゲータ」ペインで外部キーを含めるデータベース表を選択します。
「エディタ」ペインの「参照」タブ(図3-5を参照)をクリックします。
参照表を選択します。詳細は、「表参照の作成」を参照してください。
参照のキー・ペアを追加します。詳細は、「フィールド参照の作成」を参照してください。
「ソース・フィールド」および「ターゲット・フィールド」ドロップダウン・リストを使用し、ソースおよびターゲット表の適切なフィールドを選択します。
各外部キー・フィールドについて、手順4を繰り返します。