ヘッダーをスキップ

多対多マッピングの使用

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

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

ターゲット・クラスは、多対多マッピング用の動作を実装する必要はありません。ターゲット・クラスもソースに対して多対多マッピングを作成する場合、同じリレーション表を使用できますが、マッピングのうちの1つは読取り専用に設定する必要があります。両方のマッピングにより表への書込みが行われると、競合の原因となります。


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

多対多マッピングでは、デフォルトで、インダイレクションが有効になっており、属性がValueHolderInterfaceタイプまたは透過コレクションを持っている必要があります。

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

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

多対多マッピング


関連トピック

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

 

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