gpt4 book ai didi

java - 在 Hibernate 中检索图形结构

转载 作者:搜寻专家 更新时间:2023-10-31 19:41:45 28 4
gpt4 key购买 nike

对象结构是这样的

  • 发票
    • 客户
    • 日期
    • 人数
    • 有很多产品线(产品、数量、价格)
    • 有很多服务行(服务、数量、价格)
    • 有许多支付选项(支付类型(支票、收据等)、日期、总和)

如果我需要使用 Hibernate 检索给定时间段内的发票列表,使用延迟加载非常容易,无需编写任何代码,只需调用 get...但是存在太多 DB 调用的缺点,因此在多用户环境这个解决方案不行。

使用普通 JDBC,我使用 3 个查询解决了这个问题:发票和 ProductLines、发票和 ServiceLines 以及发票和付款选项之间的 3 个连接。之后我在内存中构造了对象。

我知道 Hibernate 也可以做到这一点,但我的问题是没有负载图这样的东西,所以我可以传递发票列表和最少的调用次数(最佳调用次数)检索数据?

最佳答案

您可以使用带有连接抓取的查询来将整个对象图存入内存:

Query query = entityManager.createQuery("select distinct invoice from Invoice as invoice " 
+ "left join fetch invoice.productLines "
+ "left join fetch invoice.serviceLines "
+ "left join fetch invoice.paymentOptions");
for (Object object : query.getResultList()) {
// Code here
}

关于java - 在 Hibernate 中检索图形结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4815259/

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