我在数据库中有一个列,其中包含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]有没有办法将包含破折号的值映射到枚举中?
发布于 2013-07-23 14:46:00
toString()不工作,因为枚举的计算是基于public final String name()的。既然这是最后的,你就不能推翻它。
你将不得不使用另一种类型。In this answer you will get the required info.
发布于 2013-07-23 14:40:23
你在你的模型里试过这个吗?
@枚举(EnumType.STRING)状态
https://stackoverflow.com/questions/17813182
复制相似问题