我有一個現有的數據庫模式,我試圖使用Hibernate 4.1.6。我需要支持多種數據庫版本,包括Oracle,所以我使用SequenceStyleGenerator進行id生成。我創建了一個用於Oracle中的生成器的序列。休眠從序列中減去一個
如果序列有一個現有的值(比如2),那麼我可以看到,當我調用實體上的保存或更新時,Hibernate調用sequence的nextval以獲得下一個值並得到3,這是正確的。然後,出於某種原因(在Hibernate類的OptimizerFactory中),Hibernate從序列值中減去1以獲得要使用的id,由於唯一的約束錯誤而失敗 - 如果nextval爲3,則2已被使用。
爲什麼Hibernate從序列中減去1以獲得用於id的值,以及如何讓它使用該序列?
你可以添加你的代碼到目前爲止你嘗試過什麼 –