インタフェース・ディスクリプタは、インプリメンタ間で共有される問合せキーでのみ定義されます。インタフェースのディスクリプタでは、問合せキーの名前のみが指定されます。
各インプリメンタのディスクリプタで、キーを該当するフィールドとともにインプリメンタのディスクリプタの表の1つから定義します。
これにより、フィールド名が異なっていても、1つの問合せキーを使用して、インタフェースへのマッピングが含まれるディスクリプタからの外部キー情報を指定できるようになります。
Contact
タイプの連絡先を含むEmployee
があると想定します。Contact
は、Phone
およびEmailAddress
の2つのインプリメンタを持つインタフェースです。各クラスには2つの属性があります。次の図は生成されたキーを表しています。
図4-29 PhoneおよびEmailについて自動生成された問合せキー
id
があります。ただし、問合せキーはこの属性について生成されます。Contact
インタフェース・ディスクリプタについては、図4-30のように、id
問合せキーを各インプリメンタについて定義するように示します。図4-30 共通問合せキーidを使用したContactインタフェース・ディスクリプタ
id
問合せキーが定義されていなかった場合、そのディスクリプタは不適切としてフラグ付けされます。共通に共有される問合せキーを持つディスクリプタがContact
について定義されているため、これを可変1対1マッピングの参照クラスとして使用できます。たとえば、Employee
のcontact
属性に対する1対1マッピングを作成できます。マッピングに対する外部キー・フィールド情報を編集する際、Employee
ディスクリプタの表をContact
インタフェース・ディスクリプタからの問合せキーと一致させる必要があります。
詳細は、「インタフェースの使用」および「Javaオブジェクト・リレーションシップ・マッピングの使用」を参照してください。
Copyright © 1997, 2006, Oracle. All rights reserved.