сам 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?
Вот такой запрос должен работать:
SELECT t
,(SELECT COUNT(oi.id)
FROM OrderItem oi
WHERE oi.product.id = t.id) AS cc
FROM Product t
ORDER BY cc ASC
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники