我有一個報告,有一個部分,每個部分都有孩子。DetachedCriteria:初始化孩子的子女
它們都設置爲延遲加載。
我可以知道如何初始化這些部分的孩子嗎?
我知道如何使用
.setFetchMode("section", FetchModel.JOIN)
但對段的孩子什麼初始化部分
?
注:我知道如何使用Hibernate.Initialization(),但DetachedCriteria可以執行它嗎?
我有一個報告,有一個部分,每個部分都有孩子。DetachedCriteria:初始化孩子的子女
它們都設置爲延遲加載。
我可以知道如何初始化這些部分的孩子嗎?
我知道如何使用
.setFetchMode("section", FetchModel.JOIN)
但對段的孩子什麼初始化部分
?
注:我知道如何使用Hibernate.Initialization(),但DetachedCriteria可以執行它嗎?
在hibernate中,當你嘗試使用這些集合,比如parent.getChildren(),hibernate會在那個時候加載子實體。所以名字懶惰。 您不必先初始化任何集合,直到您的用例特別要求爲止。
您需要在同一事務中調用此方法。
Hibernate.initialize(parent.getChildren());
公共靜態無效初始化(對象代理)拋出一個代理或者持久集合的HibernateException的
力初始化。
注意:這隻能確保代理對象或集合的初始化;不能保證集合中的元素將被初始化/物化。
參數:
proxy - a persistable object, proxy, persistent collection or null
拋出:
HibernateException - if we can't initialize the proxy at this time, eg. the Session was closed