DetachedCriteria:初始化Child的孩子

时间:2013-08-21 05:21:24

标签: java hibernate

我有一个报告,其中有一个部分,每个部分都有孩子。

他们都被设置为延迟加载。

我可以知道如何初始化那些部分的孩子吗?

我知道如何初始化部分

使用

.setFetchMode("section", FetchModel.JOIN)

但是那个部分的孩子呢?

注意:我确实知道如何使用Hibernate.Initialization()但是DetachedCriteria可以执行吗?

2 个答案:

答案 0 :(得分:0)

在hibernate中,当你尝试使用那些集合时,比如parent.getChildren(),hibernate session会在那时加载子实体。所以叫懒惰。 你不必初始化任何集合,直到你的用例特别需要它。

答案 1 :(得分:0)

您需要在同一事务中调用此方法。

      Hibernate.initialize(parent.getChildren());

public static void initialize(Object proxy)抛出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