gpt4 book ai didi

hibernate - Spring 和 hibernate : load lazy collection

转载 作者:行者123 更新时间:2023-12-04 13:35:06 24 4
gpt4 key购买 nike

您如何显式加载惰性对象/集合?
到目前为止,我发现执行此操作的唯一方法是在仍连接到 session 的对象上明确要求该对象的getter/setter方法:即

List < Account > accounts = Bank.getAccounts();
accounts.get(i).getAccountNumber();

还有另一种不那么狡猾的方法可以做到这一点吗?

我使用Spring btw,所以根据要调用的服务,我想加载不同的collection/obkjects

最佳答案

我不认为您的做法很狡猾; hibernate 的目标是透明。

但是,还有其他选择:

1)如果您想始终加载集合,则只需使集合在配置中不延迟即可。当心加载太多数据...

2)如果您想有时加载集合,则保留lazy = true并添加另一个DAO方法

loadBankWithAccounts()

并用注释说明为什么要初始化集合来做您正在做的事情,或者将HQL查询与fetch一起使用。查看文档。

3)查阅 hibernate 文档的19.1.4节,其中介绍了如何使用类似
Hibernate.initialize(bank.getAccounts())

这使您可以更清晰地进行集合初始化...

关于hibernate - Spring 和 hibernate : load lazy collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4293288/

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