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

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

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

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

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

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

This figure shows auto-generated keys for the Phone and Email classes. Both classes have an attribute, id, that is directly mapped to fields that have different names.


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

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

This figure shows the Implementors tab  with descriptors that share a common query key.


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

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

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


関連項目

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

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

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

 

Copyright © 1997, 2004, Oracle. All rights reserved.