将setMaxResults用于具有一对多联接本机查询的第一个表

时间:2018-09-09 11:31:27

标签: java mysql hibernate hibernate-onetomany nativequery

我是新来的冬眠。 我有一个类似以下的查询

select a.*, b.* from tableA a 
join tableB b on b.aId = a.id 
left join tableC c where <condition>

这里a与b的关系是一对多,b与c的关系是一对一。

现在,我需要从tableA获取所有连接结果的第一个行数。

例如,tableA中有10行,每行都与tableB中的2行相连。现在,如果我要查询tableA中的前5行,那么我需要将所有这些行都连接到其他表中,那就是总共20行。

如何为此编写本机查询。在这种情况下,我需要执行本机查询,因为我们的查询可能会限定大量行。

感谢您的帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用子查询和LIMIT

select a.*, b.* 
from (SELECT * FROM tableA ORDER BY some_col LIMIT 5) a 
join tableB b on b.aId = a.id 
left join tableC c where <condition>