遷移到Hibernate 5.2.7後,我似乎得到不正確的值爲id字段。休眠5 sequencegenerator沒有給出正確的值
我的代碼:
@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.最後一個值的id字段的表是5358.
我也得到這
ERROR: duplicate key value violates unique constraint "patientregistration_pkey" [java] Detail: Key (id)=(5318) already exists.
我是肯定這個問題類似於this和this,但我不得不問,因爲給那裏的解決方案並沒有爲我工作:
我加
<property value="true" name="hibernate.id.new_generator_mappings"/>
我的persistence.xml,但徒勞無功。任何幫助將不勝感激。
感謝您的建議。有用。但我現在有點困惑。根據Steve Ebersole在http://stackoverflow.com/questions/12737092/is-there-a-way-to-dynamically-choose-a-generatedvalue-strategy-using-jpa-annota上的評論,它應該設置爲true得到所描述的行爲 - 這是我認爲我需要的。另外,當我將該屬性設置爲false時,我得到一個警告:'發現使用了不推薦使用的[org.hibernate.id.SequenceGenerator]基於序列的id生成器;使用org.hibernate.id.enhanced.SequenceStyleGenerator來代替。「這,即使當我使用JPA SequenceGenerator –
是的,托馬斯,它會產生一個警告。從用戶指南 - 「現有應用程序可能想要禁用此設置(將其設置爲false),以將兼容性從3.x和4.x升級到5.x.」實際上,當你開始開發你的應用程序時,它應該被設置爲true,但是對於遺留 - 你應該禁用它,否則你的應用程序將失敗。 – idmitriev