8.22.30 @MapKey
(1) 説明
OneToManyリレーションシップまたはManyToManyリレーションシップで被所有者側のエンティティクラスがjava.util.Map型で示される場合に,マップ内のオブジェクト識別に用いられるマップキーを指定するアノテーションです。
name属性が指定されない場合,関連づけられたエンティティのプライマリキーはマップキーとして使われます。
プライマリキーが複合プライマリキーである場合に@IdClassとしてマップされるときは,マップキーに複合プライマリキーを使います。
プライマリキー以外の永続化フィールドまたは永続化プロパティがマップキーとして使われる場合は,そのマップキーと関連したユニークキー制約を持つことができます。
適用可能要素は,メソッドとフィールドです。
(2) 属性
@MapKeyの属性の一覧を次の表に示します。
属性名 |
任意/必須 |
属性の説明 |
---|---|---|
任意 |
マップキーとして使われる被所有者側のエンティティクラスの永続化フィールドまたは永続化プロパティの名前を指定する属性です。 |
CJPAプロバイダで対応する属性の詳細を次に示します。
(a) name属性
- 型
-
String
- 説明
-
マップキーとして使われる被所有者側のエンティティクラスの永続化フィールドまたは永続化プロパティの名前を指定する属性です。
- デフォルト値
-
被所有者側のエンティティクラスのプライマリキーフィールドまたはプロパティの名前