只是一個簡單的問題:註釋EnumMap的<K, V>使用Hibernate註解
我想在我的實體類的一個使用一個EnumMap的。
有沒有特別的方法來註釋這些? 如果我沒有明確註釋,會發生什麼?
更具體的:我希望密鑰持久化爲字符串值而不是int值。
歡呼
只是一個簡單的問題:註釋EnumMap的<K, V>使用Hibernate註解
我想在我的實體類的一個使用一個EnumMap的。
有沒有特別的方法來註釋這些? 如果我沒有明確註釋,會發生什麼?
更具體的:我希望密鑰持久化爲字符串值而不是int值。
歡呼
您可以使用註釋@MapKeyEnumerated(STRING)用於此目的,如果你的地圖,關鍵是一個枚舉:http://download.oracle.com/javaee/6/api/javax/persistence/MapKeyEnumerated.html
我提出一個例子爲HashMap<Enum, List<Object>>
在這種情況下,物體是一個自定義類,Person
@Entity
@Table(name="Tasks")
@Access(AccessType.FIELD)
public class Task implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@OneToMany(cascade={CascadeType.ALL,CascadeType.PERSIST})
@MapKeyEnumerated(EnumType.STRING)
private Map<Role,PersonBag> persons;
[...]
}
PersonBag:
@Entity
@Table(name="Person_Bags")
public class PersonBag implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@ManyToMany
@JoinColumns({
@JoinColumn(name="PersonBag_Id",referencedColumnName="Id"),
@JoinColumn(name="Person_Id",referencedColumnName="Id")
})
private List<Person> persons;
[...]
}
感謝您的回答! – chzbrgla 2010-12-22 12:01:44