0

Hibernate を使い始めたところ、列挙型を持つはずのエンティティに対して次のエラーが発生しました。

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)" という注釈を付ける必要がありますか?

助けていただければ幸いです。ありがとう

4

2 に答える 2

0

かなり近くに見えます。まず、列挙値に大文字の名前を使用してみてください。これも役立つかもしれない同様の投稿です。Hibernate3.2+が必要であることについて説明しています。

Hibernateでの列挙

それでもはっきりしない場合は戻ってきてください

于 2011-12-09T16:18:57.500 に答える
0

ロードしようとしているデータベースに空の値があり、空の値の列挙値が見つからないと思います。余分に注意してください。エラーメッセージの最後に

app.entity.ObjType.

"" を enum クラスと連結しようとしました。

于 2011-12-09T16:40:56.517 に答える