6.3.4. 3項関連

6.3.4. 3項関連

3項関連のマッピングには3つのアプローチがあります。1つ目は関連をインデックスとして Map を使用するアプローチです:

<map name="contracts">
    <key column="employer_id" not-null="true"/>
    <map-key-many-to-many column="employee_id" class="Employee"/>
    <one-to-many class="Contract"/>
</map>
<map name="connections">
    <key column="incoming_node_id"/>
    <map-key-many-to-many column="outgoing_node_id" class="Node"/>
    <many-to-many column="connection_id" class="Connection"/>
</map>

2つ目は単純に関連をエンティティクラスとしてモデルを作り直すアプローチで、頻繁に使われます。

最後は composite 要素を使うアプローチです。これに関する議論は後ほど行います。