2011-05-06 56 views
2

我有一個問題,如果我們在數據庫中創建任何表,即沒有任何主鍵(所有列值都可爲空)。java hibernate eclipse xml - 使用沒有主鍵的實體

我們不能在Hibernate O/R映射中使用ID字段進行映射,即在處理Hibernate時使用.hbm.xml文件。

我面臨的問題是沒有ID字段的.hbm.xml文件沒有得到驗證。

我從你們所有人那裏得到了答案,但是我有一個問題,我們能否在實體類中使用前綴爲ID變量的transient關鍵字,以便不將該值保存到數據庫中?

+0

該表與其他任何表無關嗎? – yogsma 2011-05-06 05:49:17

+0

根據我知道沒有你不能創建它沒有ID因爲休眠使用主鍵作爲保持身份的方法。 – 2011-05-06 05:52:05

回答

3

唯一真正的解決方案是修復您的損壞的數據模型。沒有主鍵的實體不是關係數據,所以你不能指望ORM產品能夠知道如何處理它。

Hibernate將如何在沒有主鍵或唯一標識的行的情況下執行更新?

謝謝。

0

你不能在休眠中做到這一點。而且你不應該這樣做。數據庫警告你不建議不要有主鍵。

如果你真的沒有一組形成了獨特的鍵列,你有兩個選擇:

  • 添加一個自動增加的主鍵(首選)
  • 使用原始JDBC獲得來自該特定表格的數據。你可以用hibernate的session.doWork(..)方法來做到這一點。
相關問題