2010-09-20 63 views
0

「表1」可能有多個「表2」實例。 「表2」是與「表A」映射的一對一。但「表A」的實例由「表B」創建。 「表1」不必總是具有「表2」的條目。將細節保存到數據庫時出現TransientObjectException

表2有兩欄說tb1和tbA。 tb1引用「表1」的主鍵,tbA引用「表A」的主鍵。

如果首先保存表A的數據,然後保存表1的數據,那麼它工作正常。但是,如果我正在保存表1的內容,該表的內容已映射到表2條目並且表A條目尚未保存,我得到一個TransientObjectException。

我在JAVA中使用hibernate和annotations。我已經嘗試了級聯協會以及我可以在網絡上找到的所有其他可能的解決方案。但沒用。請做一些想法。

示例:考慮表1 = Person;表2 =歸屬;表A =汽車;表B =製造商。 人可以有很多車。汽車有person_id(指人)和car_id(汽車)。一輛汽車肯定有製造商。現在在我的應用程序中,一個人將與由製造商創建但未保存的汽車相關聯(即car_id尚未生成)。現在,當我將整個會話數據保存爲一個整體時(我的情況是這樣做的),我希望首先保存汽車數據,然後保存Person數據bcos,然後不會發生TransientObjectException。有關如何完成此任務的任何建議。希望這個例子更好。

+0

相關:[Hibernate異常幫助:TransientObjectException](http://stackoverflow.com/questions/1044913/hibernate-exception-help-transientobjectexception) – 2015-08-23 15:50:40

回答

0

你的例子非常難以遵循,並顯示一些(僞)代碼可能會有所幫助。但根據我對你的描述的理解,你可能需要session.merge()