簡體   English   中英

Hibernate主鍵約束違規

[英]Hibernate primary key constraint violation

我正在嘗試編寫一個SQL腳本來將數據從一些舊表遷移到一個新表。 新表主鍵(id)由hibernate管理,因此作為舊表的主鍵。 我不知道如何使用純SQL為新表分配id,所以我正在做的是從舊表中獲取id。 遷移腳本按預期工作。

在某些時候,我的應用程序嘗試使用Hibernate將數據插入到新表中,並且我得到主鍵約束違例異常。 我懷疑這是因為hibernate分配的密鑰與我在遷移舊數據時給出的密鑰相沖突。 BTW - hibernate配置為每個表分配唯一的主鍵。

我究竟做錯了什么? 我該如何解決這個問題?

謝謝

如果使用具有自動增量的數據庫(例如mysql,MSSQL)鍵列,則必須將現有ID的自動增量值設置為max(遷移后)。 如果使用序列生成id(例如oracle,postgree),則必須將當前序列值從現有ID更改為max(遷移后)。

好的 - 事實證明,當使用Hibernate的@GeneratedValue(strategy = GenerationType.TABLE)時,我們有hibernate_sequences表來跟蹤我的數據庫中每個表的下一個id。 因此,我所要做的就是更新此表並正確設置下一個ID - 正如之前所述。

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM