1

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

它们都设置为延迟加载。

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

我知道如何初始化部分

通过使用

.setFetchMode("section", FetchModel.JOIN)

但是科的孩子呢?

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

4

2 回答 2

0

在休眠中,当您尝试使用这些集合时,例如 parent.getChildren(),休眠会话将在那时加载子实体。所以名字懒惰。在您的用例特别需要之前,您不必初始化任何集合。

于 2013-08-21T05:31:12.870 回答
0

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

      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
于 2013-08-21T05:47:10.407 回答