Тип enum Hibernate 3 - PullRequest
       20

Тип enum Hibernate 3

0 голосов
/ 09 декабря 2011

Я начинаю работать с Hibernate и получаю следующую ошибку для сущности, которая должна иметь тип enum.

java.lang.IllegalArgumentException: No enum const class app.entity.ObjType.
java.lang.Enum.valueOf(Enum.java:214)
    org.hibernate.type.EnumType.nullSafeGet(EnumType.java:125)
    org.hibernate.type.CustomType.nullSafeGet(CustomType.java:109)
    org.hibernate.type.AbstractType.hydrate(AbstractType.java:104)
    org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283)

У меня определен следующий тип перечисления:

package app.entity;

@Entity
class Example {
    @Enumerated(EnumType.STRING)
    private ObjType type;
}

И определенный класс Enum выглядит следующим образом:

package app.entity;

public enum ObjType {
    typeA,
    typeB
}

Что я делаю не так? Кроме того, методы set и get также должны быть помечены как "@Enumerated (EnumType.STRING)"?

Буду признателен за любую помощь. Спасибо

Ответы [ 2 ]

0 голосов
/ 09 декабря 2011

Я думаю, у вас есть пустое значение в базе данных, которое он пытается загрузить, и он не может найти значение enum для пустого значения.Обратите внимание на доп.в конце сообщения об ошибке

app.entity.ObjType.

, где он попытался "" объединить класс enum.

0 голосов
/ 09 декабря 2011

Это выглядит довольно близко.Попробуйте использовать имена в верхнем регистре для значений Enum.Вот аналогичный пост, который также может помочь.В нем говорится о том, что Hibernate 3.2+ требуется.

Перечисления в Hibernate

Вернитесь, если все еще не ясно

...