【发布时间】:2023-03-23 16:09:01
【问题描述】:
我正在将旧的“经典 ASP”应用程序迁移到 J2EE/Hibernate。 我对以下类型的 SQL 语句有疑问:
SELECT parent.id, parent.name, parent.column1, count(child.id) AS no_of_children
FROM parent
INNER JOIN child ON child.parent_id = parent.id
GROUP BY parent.id, parent.name, parent.column1
如何在 HQL 中表达这样的内容?我尝试将孩子映射为一个集合(通过使用多对一)并从集合大小中获取孩子的数量,但是 Hibernate 必须分别为每个父母加载所有“孩子”实体。
这会导致执行大约 1000 个数据库查询而不是 1 个,从而导致性能问题。
有没有办法解决这个问题?
【问题讨论】: