休眠@Enumerated映射
Hibernate 提供的注释支持使用 或 的两种类型的映射。当我们使用 映射时,它采用枚举的“名称”,而不是枚举的表示形式。在数据库列仅由一个字符组成的情况下,这是一个问题。例如,我有以下枚举:@Enumerated
Enum
ORDINAL
STRING
EnumType.STRING
Enum
toString()
public enum Status{
OPEN{
@Override
public String toString(){
return "O";}
},
WAITLIST{
@Override
public String toString(){
return "W";}
},
COMPLETE{
@Override
public String toString(){
return "C";}
}
}
当我使用 保留枚举时,Hibernate 尝试存储在数据库中的值是 OPEN。但是,我的数据库列仅由一个字符组成,因此它会引发异常。Status.OPEN
@Enumerated(EnumType.STRING)
解决此问题的一种方法是更改枚举类型以保存单个字符(如 、 而不是 、 )。但是,这会降低可读性。有什么建议可以保持可读性以及将枚举映射到单个字符列吗?STATUS.O
STATUS.W
STATUS.OPEN
STATUS.WAITLIST
谢谢。