Hibernate.initialize做什么?
通常提到documentation只讨论
Hibernate.initialize(entity.lazyCollection)
中有什么意义吗?
Hibernate.initialize(entity)
答案 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/
的良好来源