org.hibernate.AnnotationException:不明なId.generator
問題
次のHibernateのアノテーションシーケンスジェネレータをPostgreSQLデータベースで実行する。
@Id @Column(name="user__id", nullable=false) @GeneratedValue(strategy = GenerationType.SEQUENCE ,generator="account__user__id__seq") private Integer userId;
次のUnknown
Id.generator
例外にヒットします。
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: account__user__id__seq at org.hibernate.cfg.BinderHelper.makeIdGenerator(BinderHelper.java:413) at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1795) at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1229) at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:733)
シーケンス “account
user
id__seq”がPostgreSQLデータベースで作成されましたが、上記の例外の原因は何ですか?
解決策
”
Sequences
“をIdジェネレータとして使用するためのHibernateの注釈戦略を宣言するときは、次のように@SequenceGeneratorも指定してみてください
@Id @Column(name="user__id", nullable=false) @SequenceGenerator(name="my__seq", sequenceName="account__user__id__seq") @GeneratedValue(strategy = GenerationType.SEQUENCE ,generator="my__seq") private Integer userId;