Я новичок в гибернации. У меня есть такой запрос
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 строк, каждая из которых соединяется с 2 строками из tableB
. Теперь, если я запрашиваю первые 5 строк из tableA
, мне нужны все эти строки из присоединения к другим таблицам, то есть в общей сложности 20 строк.
Как мне написать для этого собственный запрос. Мне нужно выполнить собственный запрос. В этом случае мне нужна производительность, поскольку наш запрос может квалифицировать огромное количество строк.
Любая помощь приветствуется. Спасибо.
Вы можете использовать подзапрос и 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>