我在数据库中有一个包含5个可能值的列。我想将此列映射为枚举字段。问题是这些值中的一些包含破折号。我试过这样的事情:
public enum Status {
S1("S1"), S2("S2"), S3("S-3"), S4("S-4"), S5("S5");
private final String text;
Status(String text) {
this.text = text;
}
@Override
public String toString() {
return this.text;
}
但它不起作用。如果数据库中的行包含带破折号的值,则会出现错误:
Unknown name value [S-3] for enum class [test.package.Status]
有没有办法将包含破折号的值映射到枚举?
答案 0 :(得分:0)
你在模特中试过这个吗
@Enumerated(EnumType.STRING) 状态状态
答案 1 :(得分:0)
toString()不起作用,因为枚举的评估基于public final String name()
。因为这是最终的,你无法覆盖它。