hibernate 5 sequencegenerator 没有给出正确的值
hibernate 5 sequencegenerator not giving the right value
迁移到 Hibernate 5.2.7 后,我的 id 字段值似乎不正确。
我的代码:
@Id @SearchableId
@GeneratedValue(strategy=GenerationType.AUTO, generator="hms_seq_gen")
@SequenceGenerator(name="hms_seq_gen", sequenceName="patregn_seq")
protected Integer ID;
Hibernate 触发此查询:
select nextval ('patregn_seq')
给出 5367。table 中 id 字段的最后一个值是 5358。
我明白了
ERROR: duplicate key value violates unique constraint "patientregistration_pkey"
[java] Detail: Key (id)=(5318) already exists.
我确定这个问题类似于this and this,但我不得不问,因为那里给出的解决方案对我不起作用:
我加了
<property value="true" name="hibernate.id.new_generator_mappings"/>
给我的 persistence.xml,但无济于事。任何帮助将不胜感激。
实际上,当您迁移到新的 Hibernate 版本 5.2.7 时,hibernate.id.new_generator_mappings
默认为 true
。
为了向后兼容,您应该将此标志更改为 false
。
有关详细信息,请在用户指南中搜索 new_generator_mappings
:- http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html
迁移到 Hibernate 5.2.7 后,我的 id 字段值似乎不正确。
我的代码:
@Id @SearchableId
@GeneratedValue(strategy=GenerationType.AUTO, generator="hms_seq_gen")
@SequenceGenerator(name="hms_seq_gen", sequenceName="patregn_seq")
protected Integer ID;
Hibernate 触发此查询:
select nextval ('patregn_seq')
给出 5367。table 中 id 字段的最后一个值是 5358。
我明白了
ERROR: duplicate key value violates unique constraint "patientregistration_pkey"
[java] Detail: Key (id)=(5318) already exists.
我确定这个问题类似于this and this,但我不得不问,因为那里给出的解决方案对我不起作用:
我加了
<property value="true" name="hibernate.id.new_generator_mappings"/>
给我的 persistence.xml,但无济于事。任何帮助将不胜感激。
实际上,当您迁移到新的 Hibernate 版本 5.2.7 时,hibernate.id.new_generator_mappings
默认为 true
。
为了向后兼容,您应该将此标志更改为 false
。
有关详细信息,请在用户指南中搜索 new_generator_mappings
:- http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html