我正在尝试将以下查询从sql转换为hibernate,但我没有运气。
select * from person order by (person_id in (1,4,7)), last_name;
id是某些输入值的示例,可能来自某种Collection。任何帮助,将不胜感激。感谢。
答案 0 :(得分:1)
您可以将列表作为参数传递给查询,其余查询将相同,以下查询之一应该有效。
Query query = session.createQuery("from Person order by (persionId in (:ids)), lastName").setParameterList("ids", idList);
OR
Query query = session.createQuery("from Person order by (CASE WHEN persionId in (:ids) THEN 0 ELSE 1 END), lastName").setParameterList("ids", idList);