Hibernate嵌套在by子句中的where子句中

时间:2014-07-18 19:54:23

标签: sql hibernate sql-order-by where-in

我正在尝试将以下查询从sql转换为hibernate,但我没有运气。

select * from person order by (person_id in (1,4,7)), last_name;

id是某些输入值的示例,可能来自某种Collection。任何帮助,将不胜感激。感谢。

1 个答案:

答案 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);