多対多マッピングの使用

多対多マッピングは、ソース・オブジェクトのコレクションとターゲット・オブジェクトのコレクションの間の関連を表します。これには、ソース・レコードとターゲット・レコードの間の関連付けを管理するための中間表の作成が必要です。図5-17には、Javaおよびリレーショナル・データベース表における多対多マッピングが示されています。

多対多マッピングはリレーション表を使用して実装されます。この表はソース表およびターゲット表の主キーの列を含みます。コンポジット主キーにはコンポジット・キーの各フィールドに対する列が必要です。多対多マッピングを使用する前に、中間表をデータベースで作成する必要があります。

ターゲット・クラスは多対多マッピングに対する動作を実装する必要はありません。ターゲット・クラスもそのソースへの後方多対多マッピングを作成する場合は、同じリレーション表を使用できますが、マッピングの1つは読取り専用に設定する必要があります。双方のマッピングが表への書込みを行うと、競合が発生する可能性があります。


注意: 1対多マッピングでVector以外のコレクション・クラスを使用する場合の詳細は、「コンテナ・ポリシーの使用」を参照してください。

多対多マッピングではデフォルトでインダイレクションが使用可能であり、これには属性がValueHolderInterfaceタイプまたは透過的コレクションを保持することが必要です。

次の図には、Javaおよびリレーショナル・データベース双方における多対多リレーションシップが示されています。

図5-17 多対多リレーションシップ

This figure shows a many-to-many mapping for both Java classes and relational   databases.


関連項目

TopLinkマッピング・タイプについて
リレーションシップ・マッピングの使用

 

Javaオブジェクトの多対多マッピングの作成
CMP EJBの多対多マッピングの作成

 

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