@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface MapKeyClass
java.util.Map
型の関連付けのマップキーの型を指定します。
マップキーは基本型や組み込みクラス、もしくはエンティティにすることができます。
マップがJavaジェネリクスを使用して指定されている場合は、MapKeyClass
アノテーションおよび関連型を指定する必要はありません。
それ以外の場合は指定する必要があります。
MapKeyClass
アノテーションはElementCollection
やコレクション値のリレーションシップのアノテーション(OneToMany
またはManyToMany
)
と共に使用されます。
MapKey
アノテーションとMapKeyClass
アノテーションは同時に使われることはありません。
Example 1: @Entity public class Item { @Id int id; ... @ElementCollection(targetClass=String.class) @MapKeyClass(String.class) Map images; // imageの名前からimageのファイル名へのmap ... } Example 2: // MapKeyClassとリレーションシップのターゲット型がデフォルトにできる場合 @Entity public class Item { @Id int id; ... @ElementCollection Map<String, String> images; ... } Example 3: @Entity public class Company { @Id int id; ... @OneToMany(targetEntity=com.example.VicePresident.class) @MapKeyClass(com.example.Division.class) Map organization; } Example 4: // MapKeyClassとリレーションシップのターゲット型がデフォルトにできる場合 @Entity public class Company { @Id int id; ... @OneToMany Map<Division, VicePresident> organization; }
ElementCollection
,
OneToMany
,
ManyToMany
修飾子とタイプ | 必須要素と説明 |
---|---|
java.lang.Class |
value
(必須) マップキーの型
|
Translated by @megascus.