3.4.6.2.3. インデックス化されたコレクションを持つ双方向の関係
一方がインデックス化されたコレクションである双方向の関係 (
@IndexColumn、@org.hibernate.annotations.MapKey、または @org.hibernate.annotations.MapKeyManyToMany として表されます) は特別な注意が必要です。関連するクラスのプロパティがインデックス化された値を明示的にマップする場合は、mappedBy の使用が許可されます。
ただし、子クラスでこのようなプロパティが存在しない場合は、関係を実際に双方向として考えることはできません (もう一方で利用可能でない関係の一方で利用可能な情報が存在します: 索引)。この場合は、コレクションを
mappedBy としてマップできません。代わりに、以下のマッピングを使用できます。
このマッピングでは、関係の collection-valued 側が外部キーを更新することを担当します。