一尘不染

使用hibernate注释映射枚举类型

hibernate

我的Java模型上有一个枚举类型,我想映射到数据库中的表。我正在使用“hibernate注释”,但我不知道该怎么做。由于我搜索的答案比较旧,我想知道哪种方法最好?

提前致谢


阅读 268

收藏
2020-06-20

共1个答案

一尘不染

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

public enum MyEnum { 
    VALUE1, VALUE2; 
}

可以这样使用和注释:

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

您可以使用批注的EnumTypeenum属性指定枚举应如何在数据库中持久化@EnumeratedEnumType.ORDINAL指定该枚举将作为整数值保留。在这里,myEnum设置为VALUE1将永久保存为0,保留VALUE2为1,依此类推。

替代方法是使用EnumType.STRING该字段设置为枚举值的名称来指定该枚举将被持久化。因此,应用于前面的示例,将字段设置为myEnumMyEnum.VALUE1将保留为VALUE1,等等。

2020-06-20