@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface MapKey
java.util.Map型の関連付けのためのマップキーを指定するか、
マップの値であるエンティティの永続化フィールドまたはプロパティを指定します。
主キー以外の永続化フィールドまたはプロパティがマップキーとして使用される場合でもそれに関連付けられた一意制約があることが予期されます。
MapKeyClassアノテーションとMapKeyアノテーションは同時に使われることはありません。
Example 1:
@Entity
public class Department {
...
@OneToMany(mappedBy="department")
@MapKey // マップキーは主キー
public Map<Integer, Employee> getEmployees() {... }
...
}
@Entity
public class Employee {
...
@Id Integer getEmpId() { ... }
@ManyToOne
@JoinColumn(name="dept_id")
public Department getDepartment() { ... }
...
}
Example 2:
@Entity
public class Department {
...
@OneToMany(mappedBy="department")
@MapKey(name="name")
public Map<String, Employee> getEmployees() {... }
...
}
@Entity
public class Employee {
@Id public Integer getEmpId() { ... }
...
@ManyToOne
@JoinColumn(name="dept_id")
public Department getDepartment() { ... }
...
}
| 修飾子とタイプ | 任意要素と説明 |
|---|---|
java.lang.String |
name
(オプション) マップキーとして使用される関連エンティティの永続化フィールドまたはプロパティの名前。
|
Translated by @megascus.