2012-03-18 36 views
0

晚上好。當我嘗試使用數據庫連接創建jpa實體時,我收到了一些例外。關於id不存在的東西。我懷疑它與某些表沒有主鍵的事實有關。因爲當我瀏覽每個實體併爲其提供主鍵時,錯誤會清除。我如何在沒有主鍵的表上創建實體?我正在使用websphere集成開發人員(wid)btw。jpa websphere實體ID不存在的錯誤

回答

1

所有實體都有一個Id,也就是說它們是如何工作的 - 或者更準確地說,規範是如何描述它的。如果數據庫中有要映射到實體的表,並且表中沒有主鍵,則可以使用多種選項。

  • 添加一個生成的ID(由JPA或DB管理)到表中 - 建議如果你有這種自由。
  • 使用表中現有的幾列作爲實體Id(選擇最少的數字以確保Id變得唯一)。
  • 使用所有列,即使他們的組合不是唯一的理論機會(即使在java /圖層中也應該注意,因此即使在java層中也應該小心,以免發生這種情況)
  • ...可能是更多的選擇我現在無法想象

應該很容易找到有關如何通過搜索JPA和CompositeKey來執行備選方案2和3的信息。

好運

+0

沒有想到這一點。我可能會這樣做。謝謝。 – SoftwareSavant 2012-03-19 10:47:00

+0

我可以生成嵌入類型嗎? – SoftwareSavant 2012-03-19 12:13:20

+0

而不是實體或相反作爲實體的Id? – esej 2012-03-19 15:02:30