Запрос c вложеным limit'om и left join при помощи Hibernate

256
21 апреля 2017, 19:08

Нужно проделать следующие извращения, интерпретировать которые я могу только в 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 или других возможностей хибернейта? И нужно ли, возможно эффективнее будет написать ручками?

Answer 1

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. (Я так в принципе не люблю делать больший запросы на стороне приложения и храню их в виде вьюшек)

READ ALSO
FileOutputStream меняет байт `0A` на `0D 0A`

FileOutputStream меняет байт `0A` на `0D 0A`

Я конвертирую float в byte[] следующим кодом:

286
Как работать с GPS во Fragment?

Как работать с GPS во Fragment?

Добрый день, пытаюсь запустить GPS, но не как не могу понять почему в созданном Fragment подчёркивает красным все this а так же getSystemService ?

254
TableLayout и элементы на нем во весь экран

TableLayout и элементы на нем во весь экран

Доброго времени суток! Как сделать что бы элементы (в моем случае кнопки) в контейнере TableLayout занимали все пространство экранаВ ширину я решил...

351
Анимация кнопки

Анимация кнопки

Сделала анимацию кнопки вращение вокруг своей оси в методе setOnTouchListenerА как сделать такую анимацию, чтобы при нажатии на кнопку она тряслась?...

321