【发布时间】:2016-04-08 23:48:37
【问题描述】:
我有两个大表(每个 > 1 亿行),我们称它们为 Parent 和 Child(Parent 与 Child 具有惰性的一对多关系)。当我使用连接提取时查询很慢 而且我还收到一个休眠警告“HH000104 firstresult maxresults specified with collection fetch applied in memory”,因为我使用了限制。
所以我试图在两个单独的查询中获取数据:
- 第一个查询获取所有父母的限制
- 第二个查询在第一个查询找到的父 ID 中获取具有 parent.id 的子代
此解决方案执行得非常好,但是 hibernate 不会将子项与其父项聚合,尽管这两个查询是在同一个会话中执行的。
我想知道是否有办法使用 HQL 或一些 java 代码来实现这一点: - 我不希望使用标准 API(我需要重写许多查询,并且我发现标准 API 查询难以维护) - 我不想将父/子关系更改为 EAGER/BATCH,因为没有子我将无法查询父
有什么想法吗?
【问题讨论】: