Ошибка Hibernate / JPA - Не распознаются некоторые строки в перечислении

У меня есть перечисление в классе, отображаемое Hibernate. Одно из отображаемых полей - это тип перечисления и, имеющий одно из следующих значений OK , NOK или NAP . NOK или NAP работает должным образом,но когда для поля класса установлено значение «ОК», Hibernate не может сопоставить и получить значение, для которого установлено значение null:

java.lang.IllegalArgumentException: Unknown name value for enum class     com.a.b.c.d.Class$Status: OK
    at org.hibernate.type.EnumType.nullSafeGet(EnumType.java:113)

Класс имеет:

private Status status;

@JoinColumn(name = "STATUS")
@Enumerated(EnumType.STRING)
public Status getStatus() {
    return status;
}

public enum Status {
    OK, NOK, NAP;
}

Если я изменю OK на ОК2 , работает исправно. _OK тоже работает. Насколько я понимаю, «ОК» не является зарезервированным именем (как в этом случае, когда парень использует new ), поскольку оно компилируется правильно.

Спасибо!

ОБНОВЛЕНИЕ:

До сих пор для решения проблемы я изменял перечисление и сохранял в базе данных « _OK » вместо «» OK ', как показано выше. Не очень хорошее решение, но оно, по крайней мере, работает.

public enum Status {
    _OK("OK"), 
    NOK("NOK"), 
    NAP("NAP");

    private String desc;

    private Status(String desc){
        this.desc = desc;
    }

    public String getDesc(){
        return desc;
    }
}

ОТЧЕТ ОБ ОШИБКЕ:

Отчет об ошибке был заполнен .

5
задан Community 23 May 2017 в 12:14
поделиться