Спящий динамический порядок - PullRequest
0 голосов
/ 13 февраля 2012

Привет, я хочу отсортировать в HQL

ORDER BY IF g.groupAdminId=:adminid THEN 1 ELSE 0 END ASC

Но это не работает, я хочу, чтобы все объекты, где пользователь сначала был администратором, как мне это заархивировать?

1 Ответ

8 голосов
/ 15 февраля 2012

Я не верю, что можно поместить именованные параметры вне предложения 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 документы :

Для вашей конкретной проблемы (администраторы раньше других пользователей) я предлагаю сделать два запроса и объединить два списка в Java.

Есть и другие способы, но мне не нравится ни один из них:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...