1. 程式人生 > >Hibernate主鍵生成策略strategy = "increment"報錯違反唯一性約束

Hibernate主鍵生成策略strategy = "increment"報錯違反唯一性約束

block 一個 blog tps 發現 rate 51cto image 主鍵

背景
2018年7月份,系統爆出一條bug。就是支持Excel導入的功能,導入第二次同模板不同數據時,報錯,違反唯一性約束。就死活用不了了,重啟Tomcat才能恢復使用。但只能到一個文件

分析
需要重啟Tomcat,應該是緩存的原因

原因
分析完所有代碼,臨時數據使用clear換成new,不行;
內存使用監控,導入完模板,就恢復正常,不是;
最後,看著異常找原因,發現Hibernate的主鍵策略是strategy = "increment"

嘗試
會不會是hibernate主鍵策略選擇不正確,因為選擇的主鍵策略就是不能出現刪除。

收集
Hibernate所有的主鍵策略

https://www.cnblogs.com/hoobey/p/5508992.html

解決
選用程序自動生成主鍵策略,調整後strategy = "assigned"

技術分享圖片

Hibernate主鍵生成策略strategy = "increment"報錯違反唯一性約束