Hibernate вложенный где в пункте в порядке по статье
Я пытаюсь преобразовать следующий запрос из SQL в спящий режим, и мне не повезло.
select * from person order by (person_id in (1,4,7)), last_name;
Идентификаторы являются примером некоторых входных значений, которые, вероятно, будут поступать из какой-либо коллекции. Любая помощь будет оценена. Благодарю.
1 ответ
Решение
Вы можете передать список в качестве параметра для запроса, остальная часть запроса будет такой же, один из следующих запросов должен работать.
Query query = session.createQuery("from Person order by (persionId in (:ids)), lastName").setParameterList("ids", idList);
ИЛИ ЖЕ
Query query = session.createQuery("from Person order by (CASE WHEN persionId in (:ids) THEN 0 ELSE 1 END), lastName").setParameterList("ids", idList);