作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的模型类(件):
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
。
附言我用的是hibernate jpa
感谢您的帮助!
附言我问是因为我编写了生成 json 的 REST 服务(如果我没记错的话,在 json 对象中最好使用小写)
最佳答案
写一个converter
类,用 @Converter
注释, 它实现了 javax.persistence.AttributeConverter<YourEnum, String>
.有两种方法:
public String convertToDatabaseColumn(YourEnum attribute){..}
public YourEnum convertToEntityAttribute(String dbData) {..}
在那里你可以应用你的大写/小写逻辑。
稍后您可以注释您的字段,以便使用给定的转换器。
关于java - 如何将枚举类型存储为小写字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19547218/
我是一名优秀的程序员,十分优秀!