我在插入觸發器之前和之後使用幾個表中的「ID_NAME-000001」形式生成ID(主鍵)。目前,這些pojos的hibernate generator類的值是,分配爲。一個隨機字符串被分配給要被持久化的對象,當它被hibernate插入時,觸發器會分配一個正確的id值。休眠觸發器生成的ID(MySQL)問題
這種方法的問題是我無法檢索持久對象,因爲該ID只存在於數據庫中,而不存在於我剛剛保存的對象中。
我想我需要創建一個自定義生成器類,可以檢索由觸發器分配的id值。我已經看到了一個用於oracle的例子(https://forum.hibernate.org/viewtopic.php?f=1&t=973262),但我還沒有能夠爲MySQL創建類似的東西。有任何想法嗎?
感謝,
更新:
看來,這是一種常見的,但是,沒有解決問題。我最終創建了一個新列,作爲使用選擇生成器類的唯一鍵。
感謝您的建議。當我添加新列(自定義UUID)時,我發現在選擇主鍵時出現錯誤。不幸的是,在這個階段無法糾正這個問題。 – greatgoron 2011-02-26 06:55:28
是的,我同意。當您仍處於設計階段時,更換容易。當您的應用程序處於製作和支持狀態時,可能需要花費很大力氣才能更改密鑰。 – 2011-02-28 04:12:53