使用Hibernate Annotations映射枚举类型

时间:2010-04-02 20:35:41

标签: java hibernate orm annotations enums

我的Java模型上有一个枚举类型,我想将其映射到数据库中的表。我正在使用Hibernate Annotations,我不知道该怎么做。由于我搜索的答案相当陈旧,我想知道哪种方式最好?

提前致谢

1 个答案:

答案 0 :(得分:66)

@Enumerated注释外,您还需要其他东西吗?例如,以下枚举:

public enum MyEnum { 
    VALUE1, VALUE2; 
}  

可以像这样使用和注释:

private MyEnum myEnum;
@Column(name="myenum") 
@Enumerated(EnumType.ORDINAL) 
public MyEnum getMyEnum() { 
    return myEnum 
}

您可以使用EnumType注释的@Enumerated枚举属性指定枚举应如何保留在数据库中。 EnumType.ORDINAL指定枚举将作为整数值保留。此处,设置为myEnum的{​​{1}}将保留为0,VALUE1保留为1,等等。

另一种方法是使用VALUE2指定使用字段设置为的枚举值的名称来保留枚举。因此,应用于上一个示例,将字段EnumType.STRING设置为myEnum将保持为MyEnum.VALUE1等。