使用Hibernate Annotations映射枚举类型

Thi*_*ago 36 java orm enums annotations hibernate

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

提前致谢

Pas*_*ent 68

除了@Enumerated注释,你还需要别的东西吗?例如,以下枚举:

public enum MyEnum { 
    VALUE1, VALUE2; 
}  
Run Code Online (Sandbox Code Playgroud)

可以像这样使用和注释:

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

您可以使用注释的EnumType枚举属性指定枚举应如何在数据库中保留@Enumerated.EnumType.ORDINAL指定枚举将作为整数值持久化.在这里,myEnum设置为VALUE1将保持为0,VALUE2为1等.

另一种方法是使用EnumType.STRING指定枚举将使用该字段设置为的枚举值的名称进行持久化.因此,应用于前面的示例,将字段设置myEnumMyEnum.VALUE1将保持为VALUE1,等等.