複数表を使用する継承のサポート

追加的な属性が必要なサブクラスについては、1つのスーパークラス表のかわりに複数表を使用します。データベース内に未使用フィールドがないため、これによって記憶域が最適化されます。ただし、オブジェクトをインスタンス化する前にTopLinkでは複数の表を読み取る必要があるため、パフォーマンスに影響を与える可能性があります。TopLinkでは最初に、作成するオブジェクトのクラスを判断するためクラス・インジケータ・フィールドが確認されてから、サブクラス表から読み取るためそのクラスのディスクリプタが使用されます。

図4-21にはFUELEDVHCL表、CAR表およびBICYCLE表のTopLinkにおける実装が示されています。すべてのオブジェクトがVEHICLE表に格納されます。FueledVehicleCarおよびBicycle情報は、副表にも格納されます。

図4-21 各サブクラスの個別表を使用する継承

This figure shows inheritance with separate tables.


注意: NonFueledVehicleには属性や関連が保持されていないため、副表は必要ありません。パフォーマンスという観点では、複数表のフェッチが必要となるためこの設計は非効率的です。

関連項目

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

ディスクリプタの使用
継承の使用
ディスクリプタ・プロパティの使用
アドバンスト・プロパティの使用

EJBによる継承の使用
1つのディスクリプタにおける継承属性のマッピング
1つの表を使用する継承のサポート

 

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