Hibernate.initialize有什么作用?

时间:2013-10-29 19:01:07

标签: hibernate lazy-initialization

Hibernate.initialize做什么?
通常提到documentation只讨论

Hibernate.initialize(entity.lazyCollection)

中有什么意义吗?
Hibernate.initialize(entity)

4 个答案:

答案 0 :(得分:5)

如果实体有一个懒惰的初始化字段,我会说是的,例如一些大的BLOB或CLOB数据或一个懒惰的一对一关联。见20.1.8。在前者的文件和后者的20.1.3。

另见:

20.1.4。初始化集合和代理

答案 1 :(得分:1)

我同意Alan Hay,这是我的经验,我在运行JUNit测试时遇到了这个问题,在尝试加载另一个会话中的对象时,一些惰性对象没有加载。我不得不调用Hibernate.initialize(Object)将惰性对象加载到内存中。

答案 2 :(得分:0)

Hibernate在某些情况下返回代理对象,如延迟集合或Session.load()等。因此,如果你有代理对象并想要真正的代理对象,你可以手动初始化它。

答案 3 :(得分:0)

Hibernate.initialize()很快就会在持久化上下文中创建另一个查询来获取对象。当急切地加载对象时,JPA只提取一个查询来获取对象。所以另一个区别是对服务器的号码调用

另外:  1.如果object为null,则Hibernate.initialize()抛出异常  2.如何初始化惰性关联http://www.thoughts-on-java.org/5-ways-to-initialize-lazy-relations-and-when-to-use-them/

的良好来源