我正在尝试使用 HQL 和OUTER JOIN
s 构建查询,但无法正常工作。考虑以下映射
<class name="Parent">
<id name="id" type="integer">
<generator class="native" />
</id>
</class>
<class name="Child">
<id name="id" type="integer">
<generator class="native" />
</id>
<many-to-one name="parent"/>
</class>
现在我想获取所有父母的列表和父母的孩子的数量。假设我有一个有两个孩子的父母和一个根本没有孩子的父母。我希望输出像
+-------------------+
| parent | children |
+--------+----------+
| 1 | 2 |
| 2 | 0 |
+--------+----------+
使用纯 SQL 根本不是问题,我会得到这个输出做类似的事情
SELECT p.id as parent, count(c.id) as children from parents p LEFT OUTER JOIN children c on c.parent_id = p.id group by p.id;
但是,使用 HQL 似乎是不可能的,因为在使用 a 时需要一条从 Parent 到 Child的路径OUTER JOIN
,而我显然没有(也不想添加)。
有什么想法可以让查询使用 HQL 工作,还是真的 - 我不敢相信 - 缺少休眠功能?