Java Hibernate:使用破折号映射枚举
数据库中有一列包含5个可能的值。我想将此列映射为枚举字段。问题是其中一些值包含破折号。我试过这样的方法:Java Hibernate:使用破折号映射枚举,java,hibernate,enums,Java,Hibernate,Enums,数据库中有一列包含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 Str
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]
有没有办法将包含破折号的值映射到枚举?您在模型中尝试过这个方法吗 @枚举(EnumType.STRING) Status Status由于枚举的计算基于
公共最终字符串名()
,因此toString()不起作用。由于这是最终决定,你不能推翻它
您将不得不使用另一种类型 “是”的可能重复,它适用于其他枚举,但对于带有破折号的枚举,它将失败。这将失败。因为您需要在数据库中具有与enum相同的值。