プライベート・リレーションシップまたは独立リレーションシップの指定
TopLinkではオブジェクト関係をプライベート・リレーションシップか独立リレーションシップにできます。
- プライベート・リレーションシップでは、ターゲット・オブジェクトはソース・オブジェクトのプライベート・コンポーネントになります。ターゲット・オブジェクトはソースなしでは存在できず、ソース・オブジェクト経由でのみアクセスできます。ソース・オブジェクトが消去されるとターゲット・オブジェクトも消去されます。
- 独立リレーションシップでは、ソースとターゲットが独立して存在するパブリック・オブジェクトになります。1つのオブジェクトを消去しても、もう1つのオブジェクトが消去されるとはかぎりません。
ターゲット・オブジェクトはソース・オブジェクトと同じ行を共有するため、集計オブジェクト・マッピングはデフォルトではプライベート・リレーションシップです。1対1、1対多および多対多マッピングは、アプリケーションによって独立リレーションシップかプライベート・リレーションシップになります。通常、多対多マッピングは定義上、独立リレーションシップになります。ただし、多対多マッピングは、ターゲットにおけるソースへの後方参照がなくても論理的な1対多の実装に使用できるため、TopLinkでは独立リレーションシップだけでなくプライベート・リレーションシップにもできます。
ヒント: TopLinkは自動的にプライベート・リレーションシップをサポートします。オブジェクトがデータベースに書き込まれるときは常に、所有するプライベート・オブジェクトもデータベースに書き込まれます。オブジェクトがデータベースから削除されると、そのプライベート・オブジェクトも削除されます。これはアプリケーションの動作およびパフォーマンスの両方に影響する可能性があるため、新規システムの作成時には注意してください。
Copyright © 1997, 2006, Oracle. All rights reserved.