2010-12-22 101 views
3

只是一個簡單的問題:註釋EnumMap的<K, V>使用Hibernate註解

我想在我的實體類的一個使用一個EnumMap的。

有沒有特別的方法來註釋這些? 如果我沒有明確註釋,會發生什麼?

更具體的:我希望密鑰持久化爲字符串值而不是int值。

歡呼

回答

2

我提出一個例子爲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; 
[...] 
}