2015-09-09 5 views
2

У меня есть две таблицы A и B. Я выполняю LEFT OUTER JOIN на нем и отлично работает. Я попытался ограничить число строк в таблице А, так что для меня, когда я спрашиваю 5 строк я хочу 5 строк из таблицы А вместе с независимо от того, сколько строк из таблицы B.Hibernate join table limit result

Так же, как:

select * from (select * from A where rownum < ?) a left outer join B b on a.id=b.id; 

Я пытался использовать критерии Hibernate API и методы setMaxResult на соединяемых критериях, но то, что спящий режим делает:

select * from(select * from A a left outer join B b on a.id=b.id) where rownum < ?; 

JPA/Hibernate не поддерживает подзапросы в из положений, идей, как достичь этого результата ?

Михал

+0

на самом деле ваш запрос не будет работать в SQL либо, ваш подзапросов suposes вернуть имя таблицы, то, не кажется истинным –

+0

Верьте мне или нет, но он работает :) – voncuver

+0

Я не ... но вы можете сделать меня верующим и улучшить свой вопрос, чтобы легче получить ответ с помощью [MCVE] (http: // stackoverflow.com/help/mcve) :) –

ответ

0

Один из возможных вариантов, я могу думать использует гибернации родной 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