ヘッダーをスキップ

インタフェース・ディスクリプタでの問合せキーの使用

インタフェース・ディスクリプタは、インプリメンタ間で共有される問合せキーでのみ定義されます。インタフェースのディスクリプタでは、問合せキーの名前のみが指定されます。

各インプリメンタのディスクリプタで、キーを該当するフィールドとともにインプリメンタのディスクリプタの表の1つから定義します。

これにより、フィールド名が異なっていても、1つの問合せキーを使用して、インタフェースへのマッピングが含まれるディスクリプタからの外部キー情報を指定できるようになります。

Contactタイプの連絡先を含むEmployeeがあると想定します。Contactは、PhoneおよびEmailAddressの2つのインプリメンタを持つインタフェースです。各クラスには2つの属性があります。次の図は生成されたキーを表しています。

図4-29 PhoneおよびEmailについて自動生成された問合せキー

PhoneおよびEmailクラスについて自動生成されたキー


注意: どちらのクラスにも、別の名前を持つフィールドに直接マップされる属性idがあります。ただし、問合せキーはこの属性について生成されます。Contactインタフェース・ディスクリプタについては、図4-30のように、id問合せキーを各インプリメンタについて定義するように示します。

図4-30 共通問合せキーidを使用したContactインタフェース・ディスクリプタ

「インプリメンタ」タブ


注意: インプリメンタ・クラスのどちらかにid問合せキーが定義されていなかった場合、そのディスクリプタは不適切としてフラグ付けされます。

共通に共有される問合せキーを持つディスクリプタがContactについて定義されているため、これを可変1対1マッピングの参照クラスとして使用できます。たとえば、Employeecontact属性に対する1対1マッピングを作成できます。マッピングに対する外部キー・フィールド情報を編集する際、Employeeディスクリプタの表をContactインタフェース・ディスクリプタからの問合せキーと一致させる必要があります。

詳細は、「インタフェースの使用」および「Javaオブジェクト・リレーションシップ・マッピングの使用」を参照してください。


関連トピック

TopLinkディスクリプタについて

問合せキーの自動生成
リレーションシップ問合せキーの使用

問合せキーの使用
問合せキーの指定
ディスクリプタの使用