Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:使用破折号映射枚举_Java_Hibernate_Enums - Fatal编程技术网

Java Hibernate:使用破折号映射枚举

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

数据库中有一列包含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]

有没有办法将包含破折号的值映射到枚举?

您在模型中尝试过这个方法吗

@枚举(EnumType.STRING) Status Status

由于枚举的计算基于
公共最终字符串名()
,因此toString()不起作用。由于这是最终决定,你不能推翻它


您将不得不使用另一种类型

“是”的可能重复,它适用于其他枚举,但对于带有破折号的枚举,它将失败。这将失败。因为您需要在数据库中具有与enum相同的值。