2010-12-22 95 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; 
[...] 
}