14

Hibernate.initialize 做什么?
通常提到的文档只讲

Hibernate.initialize(entity.lazyCollection)

有什么意义吗

Hibernate.initialize(entity)
4

4 回答 4

5

如果实体具有延迟初始化的字段,例如一些大型 BLOB 或 CLOB 数据或延迟的一对一关联,我会说是。见 20.1.8。在前者的文档和后者的 20.1.3 文档中。

也可以看看:

20.1.4。初始化集合和代理

于 2013-10-29T19:37:34.843 回答
1

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

于 2013-10-29T21:19:37.357 回答
0

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

于 2014-10-29T04:32:04.943 回答
0

很快 Hibernate.initialize() 创建另一个查询来获取持久性上下文中的对象。当对象被急切加载时,JPA 只进行一次查询来获取对象。所以另一个区别是对服务器的电话号码

另外: 1. 如果对象为空 Hibernate.initialize() 抛出异常 2. 如何初始化惰性关联的好来源http://www.thoughts-on-java.org/5-ways-to-initialize-lazy-关系和何时使用它们/

于 2016-12-13T09:23:25.043 回答