2010-09-07 47 views
2

我有父子關係中的兩個表。父可以有多個子記錄。 父表的Primay鍵是由hibernate生成的,這個生成的父表的主鍵是子表中的外鍵。有cascade =全部設置在父母hbm中。因此,在父鍵被生成並且父記錄被保存之後,子記錄應該被保存爲具有相同的生成鍵值。只有我知道要做到這一點是與「外國」生成器,但與父子一對多的關係我不能有父鍵作爲子表中的主鍵。它會導致UniqueObjectException。任何人都知道如何在這種情況下將生成的父鍵值保存在子表中?父子關係,級聯保存與生成的父鍵作爲子表中的外鍵

回答

0

因此,在生成父鍵並保存父記錄後,子記錄應保存爲具有相同生成的鍵值。

這對於一對多關係沒有任何意義,如果可以有很多孩子,則不能使用父母的PK作爲孩子的PK。

只有我知道這樣做的方式是使用「foreign」生成器,但是與父子的一對多關係我無法將父鍵作爲子表中的主鍵。它會導致UniqueObjectException。

是的,很明顯。你實際期望的結果是什麼?可能的數據庫設計是什麼樣的?

任何人都知道如何在此場景中將生成的父鍵值保存在子表中?

那麼,你真的得到它(作爲外鍵)。我真的不明白真正的目標是什麼。你也許可以解釋一下可能的數據庫設計是什麼,以及真正的問題是什麼,以便我們可以考慮解決方案?