entity manager query order by select count

257
27 апреля 2017, 14:01

сам sql запрос:

select t from Product t  where t.category.id=2  ORDER BY (SELECT count(oi.id) FROM OrderItem oi WHERE t.id = oi.product.id) DESC

когда я пытаюсь передать это в entityManager.createQuery(..); то получаю ошибку, потому что он в упор не хочет в ORDER BY видеть какие-либо селекты, т.е. такую строку он примет нормально: select t from Product t where t.category.id=2 ORDER BY count(t.id) DESC createNativeQuery метод так же прекрасно принимает первую строку(чуть переделанную под названия колонок в бд, а не в сущности), но надо использовать именно createQuery метод. Вопрос: как можно реализовать ORDER BY (SELECT COUNT(..) ..) в createQuery?

Answer 1

Вот такой запрос должен работать:

SELECT t
    ,(SELECT COUNT(oi.id)
      FROM OrderItem oi
      WHERE oi.product.id = t.id) AS cc
FROM Product t
ORDER BY cc ASC
READ ALSO
Spinner в AlertDialog. setAdapter()

Spinner в AlertDialog. setAdapter()

Уважаемые знатоки, мне необходимо добавить Spinner со слушателем в AlertDialogНасколько я понял, для этого необходимо воспользоваться setAdapter, но не понимаю,...

257
Отправка смс с кодом при авторизации

Отправка смс с кодом при авторизации

ЗдравствуйтеДело в том, что я хочу реализовать авторизацию в своем приложении как на Whatsapp

182
Проблема утечки данных в Lock механизме

Проблема утечки данных в Lock механизме

Есть реализация Lock механизма на wait и notify:

291