强制加载其他延迟加载的属性

24 java hibernate lazy-loading eager-loading

我有一个Hibernate对象,它的属性都是懒惰加载的.大多数这些属性是其他Hibernate对象或PersistentSets.

现在我想迫使Hibernate一次性加载这些属性.

当然,我可以"触摸"这些属性,object.getSite().size()但也许还有另一种方法来实现我的目标.

ste*_*son 21

这是一个老问题,但我也想指出静态方法Hibernate.initialize.

用法示例:

Person p = sess.createCriteria(Person.class, id);
Hibernate.initialize(p.getChildren());
Run Code Online (Sandbox Code Playgroud)

这些子项现在已初始化,即使在会话结束后也可以使用.


Pas*_*ent 7

文档如下:

您可以fetch all properties在HQL中强制使用通常的热切提取属性.

参考