0

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

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

4

2 回答 2

0

你在你的模型中试过这个吗

@Enumerated(EnumType.STRING) 状态状态

于 2013-07-23T14:40:23.417 回答
0

toString() 不起作用,因为枚举的评估基于public final String name(). 由于这是最终的,您不能覆盖它。

您将不得不使用另一种类型。在此答案中,您将获得所需的信息。

于 2013-07-23T14:46:00.137 回答