2
我有one-to-many
父對象和子對象之間的關係。父對象使用存儲多個子對象的java.util.List
。我遇到的問題是在向父節點中的List
添加一個或多個子對象後更新父對象。我正在使用saveOrUpdate
方法來保存或更新父級。如果我正在保存父對象的新實例,但它工作正常,但在保存後,我嘗試將子對象添加到父對象List
中,然後嘗試對父對象調用saveOrUpdate
,但沒有任何子對象條目( s)被持久化到數據庫中。我只想要一些指針。 注意:我沒有使用註釋。
的Parent.hbm.xml的一個片段,它定義了一個一對多的單向關係:休眠一對多單向映射表
<list name="children" cascade="all">
<key column="parent_id"/>
<index column="idx"/>
<one-to-many class="Child"/>
</list>
謝謝羅馬。我按照你的建議嘗試過。但是,我得到一個異常:「org.hibernate.LazyInitializationException:未能懶惰地初始化一個角色集合:Parent.children,沒有會議或會話已關閉」。從數據庫加載父級後,JUnit測試在parent.getChildren上失敗。 – walters 2010-10-14 09:03:23
是的,這發生在分離的實體上。根據需求(例如是否必須始終加載子進程),可以熱切加載它們(要執行此操作,可以在列表中設置lazy =「false」)。您可以在Hibernate網站上閱讀更多內容:http://docs.jboss.org/hibernate/core/3.5/reference/en/html/performance.html#performance-fetching-lazy。另外,請考慮「在視圖中打開會話」模式。 – Roman 2010-10-14 09:50:28
另外,這個SO線程有關於這個問題的更多信息:http://stackoverflow.com/questions/345705/hibernate-lazyinitializationexception-could-not-initialize-proxy – Roman 2010-10-14 10:03:57