休眠@Enumerated映射
Hibernate 提供的注释支持使用 或 的两种类型的映射。当我们使用 映射时,它采用枚举的“名称”,而不是枚举的表示形式。在数据库列仅由一个字符组成的情况下,这是一个问题。例如,我有以下枚举:@EnumeratedEnumORDINALSTRINGEnumType.STRINGEnumtoString()
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.OSTATUS.WSTATUS.OPENSTATUS.WAITLIST
谢谢。