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

enum の評価は に基づいているため、 toString() は機能しませんpublic final String name()。これは最終的なものであるため、上書きすることはできません。

別のタイプを使用する必要があります。この回答では、必要な情報を取得します。

于 2013-07-23T14:46:00.137 に答える
0

あなたのモデルでこれを試しましたか

@Enumerated(EnumType.STRING) ステータスステータス

于 2013-07-23T14:40:23.417 に答える