gpt4 book ai didi

java - 将 "new map"结果绑定(bind)到 Hibernate 中的对象

转载 作者:行者123 更新时间:2023-12-01 04:53:27 25 4
gpt4 key购买 nike

我正在创建一个繁重的 HQL 查询并尝试对其进行优化。有一个表Product,它需要为每个产品计算一些统计信息,我们称之为stat。我正在尝试这种查询来一次获取所有产品及其统计信息(这是一个简化的查询,真正的查询要复杂得多):

select new map(min(product) as prod, sum(somestat) as stat) 
from Product product
left join product.stats somestat
group by product.id, product.name
order by product.name

但是,当我尝试执行此类查询时,它首先执行主选择,然后执行 X 次 SELECT Product.* FROM Product WHERE Product.id=? 选择每个产品已返回。

有没有办法让它利用第一个查询的结果来创建这些产品实例?

提前致谢。

最佳答案

如果你想要整个产品,那么 hibernate 已经在做唯一合理的事情:执行 N+1 个选择。您碰巧按主键进行分组,因此理论上人们可以想象这样做,但即使在 SQL 中,您也不允许选择任何未在分组依据中使用的列。无论如何,这种自定义技巧超出了 Hibernate 这样的 ORM 的范围。

关于java - 将 "new map"结果绑定(bind)到 Hibernate 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14564870/

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