问题
在PostgreSQL数据库中运行以下Hibernate的注释序列生成器。
@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)
在PostgreSQL数据库中创建了序列“ account_user_id_seq”,是什么原因导致上述异常?
解
声明Hibernate的注释策略使用“ Sequences ”作为ID生成器时,请尝试同时指定@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;
标签: 冬眠
翻译自: https://mkyong.com/hibernate/org-hibernate-annotationexception-unknown-id-generator/