gpt4 book ai didi

java - Hibernate.initialize() 如何工作

转载 作者:IT老高 更新时间:2023-10-28 20:50:32 25 4
gpt4 key购买 nike

我知道在 session 之外使用延迟加载对象/集合,我们这样做 Hibernate.initialize(Object obj) 以便作为参数传递给 initialize() 方法的对象被初始化并且可以在 session 范围之外使用。

但是我无法理解这是如何工作的。我的意思是,如果我们这样做,那么我们最终会急切地获取,那么为什么我们在配置中做得很懒惰并最终在运行时急切地获取。

换句话说,我想知道使用 Hibernate.initialize()eagerly 加载该对象之间的区别。

我是不是弄错了或错过了什么?

最佳答案

区别在于适用范围。

使集合关联变得惰性的原因是为了避免每次加载父对象时都加载集合,如果你真的不需要它。

如果你是正常懒加载一个集合,但是为了特定用途,你需要确保在 session 关闭之前集合已经加载,你可以使用Hibernate.initialize(Object obj) 如你所述。

如果您确实总是需要加载该集合,那么您确实应该急切地加载它。但在大多数软件中,情况并非如此。

关于java - Hibernate.initialize() 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17318340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com