35
我在我的Java模型上有一个枚举类型,我想映射到数据库上的一个表。我正在使用Hibernate Annotations,我不知道该怎么做。由于我搜索的答案相当老,我想知道哪种方法最好?使用Hibernate注释映射枚举类型
在此先感谢
我在我的Java模型上有一个枚举类型,我想映射到数据库上的一个表。我正在使用Hibernate Annotations,我不知道该怎么做。由于我搜索的答案相当老,我想知道哪种方法最好?使用Hibernate注释映射枚举类型
在此先感谢
你需要比@Enumerated
注释别的东西?例如,下面的枚举:
public enum MyEnum {
VALUE1, VALUE2;
}
可以用来和注释是这样的:
private MyEnum myEnum;
@Column(name="myenum")
@Enumerated(EnumType.ORDINAL)
public MyEnum getMyEnum() {
return myEnum
}
您可以指定枚举应在数据库与@Enumerated
注释的EnumType
枚举属性被持久化。 EnumType.ORDINAL
指定枚举将作为整数值持久化。这里,myEnum
设置为VALUE1
将持久化为0,VALUE2
为1,等等
的替代方法是使用EnumType.STRING
指定的枚举将利用该字段被设置为枚举值的名称来保留。因此,应用到前面的示例中,将字段myEnum
设置为MyEnum.VALUE1
将持续为VALUE1
等。
谢谢!我想这正是我所期待的。我要试一试 – Thiago 2010-04-02 20:58:40
我可以为enum类的@Id字段输入什么? – Thiago 2010-04-02 21:19:55
@Thiago什么?你的枚举通常不是一个实体,它没有'@ Id'字段。你能否更新你的问题以显示你在做什么? – 2010-04-02 21:46:17