Нужно проделать следующие извращения, интерпретировать которые я могу только в SQL:
select *
from
(select id, other, some, fields
from table1
limit 10 offset 100) t1
left join table2 t2 on td.table1_id = t1.id
То есть нужно взять 10 записей из первой таблицы, независимо от того сколько подвяжется потом записей со второй. Если же limit вынести - "обрежется" вся выборка. Подскажите как можно извратить такое при помощи Criteria или других возможностей хибернейта? И нужно ли, возможно эффективнее будет написать ручками?
Criteria в последних версиях стоит под статусом @Deprecated и скоро мы с ней распрощаемся.
Вместо нее можно использовать конструктор JPA, в ном есть join но вот про вложеные селекты я не слышал.
CriteriaQuery<Country> q = cb.createQuery(Country.class);
Root<Country> c = q.from(Country.class);
Join<Country> p = c.join("capital", JoinType.LEFT);
q.multiselect(c, p.get("name"));
Вот тут еще пример.
Лучше не заморачиваться и сделать это на HQL или SQL. (Я так в принципе не люблю делать больший запросы на стороне приложения и храню их в виде вьюшек)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости