Java Hibernate联接表限制结果

Java Hibernate联接表限制结果,java,hibernate,jpa,join,subquery,Java,Hibernate,Jpa,Join,Subquery,我有两个表A和B。我在上面执行左外连接,工作正常。我试图通过表A限制行数,所以对于我来说,当我要求5行时,我希望表A中的5行与表B中的多少行合并 就像: select * from (select * from A where rownum < ? ) a left outer join B b on a.id=b.id; 我曾尝试使用hibernate criteria API和方法setMaxResult对已加入的条件进行测试,但hibernate所做的是: select * fro

我有两个表A和B。我在上面执行左外连接,工作正常。我试图通过表A限制行数,所以对于我来说,当我要求5行时,我希望表A中的5行与表B中的多少行合并

就像:

select * from (select * from A where rownum < ? ) a left outer join B b on a.id=b.id;
我曾尝试使用hibernate criteria API和方法setMaxResult对已加入的条件进行测试,但hibernate所做的是:

select * from( select * from A a left outer join B b on a.id=b.id) where rownum < ?;
JPA/hibernate不支持from子句中的子查询,您知道如何得到这个结果吗


Michal

我能想到的一个可能的选择是使用Hibernate原生SQL:


实际上,您的查询在sql中也不起作用,您的子查询将返回一个表名,这似乎不是真的相信我还是不相信,但它起作用了:我不。。。但你可以让我成为一个信徒,改进你的问题,让我更容易得到答案:
 hibernateSession.createSQLQuery("select * from( select * from A a left outer join B b on a.id=b.id) where rownum < ?");
 //Rest of the code