@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.