Привет, я хочу отсортировать в HQL
ORDER BY IF g.groupAdminId=:adminid THEN 1 ELSE 0 END ASC
Но это не работает, я хочу, чтобы все объекты, где пользователь сначала был администратором, как мне это заархивировать?
Я не верю, что можно поместить именованные параметры вне предложения where.
where
Можно заказать по выражениям:
from User U order by case when U.group.name = 'Admin' then 0 when U.group.name = 'Superuser' then 1 else 2 end asc
Подробнее о case в HQL документы :
case
Для вашей конкретной проблемы (администраторы раньше других пользователей) я предлагаю сделать два запроса и объединить два списка в Java.
Есть и другие способы, но мне не нравится ни один из них: