【发布时间】:2013-11-02 01:20:20
【问题描述】:
我的模型课(片):
public class User ... {
@Enumerated(STRING)
private Status status;
...
public enum Status {
ACTIVE,
INACTIVE;
@Override
public String toString() {
return this.name().toLowerCase();
}
}
...
public String getStatus() {
return status.name().toLowerCase();
}
public void setStatus(Status status) {
this.status = status;
}
}
正如您在上面看到的,我覆盖了 toString 方法,但没有效果。
枚举在数据库中存储为ACTIVE 或INACTIVE。
附:我使用休眠 jpa
感谢您的帮助!
附言我问是因为我编写了生成 json 的 REST 服务(如果我没记错的话,在 json 对象中最好使用小写)
【问题讨论】:
-
您的代码对我有用。
toString和getStatus都返回小写字符串。你确定在构造json的时候没有调用name()? -
@Bittenus,我尝试将枚举作为小写字符串存储在数据库中。
-
1.您是使用库来解析枚举还是自己解析它? 2. 解析数据库枚举的代码是使用
name()还是toString? -
我使用下一个库:spring-orm、hibernate-core 和 hibernate-entitymanager
-
接受的答案是唯一的方法。很遗憾,如果没有定义转换器,Spring 应该默认使用枚举 getter 和 setter
标签: java hibernate jpa enums persistence