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);
Другие вопросы по тегам