2014-07-18 31 views
0

我试图从SQL转换以下查询到冬眠,我没有运气。Hibernate嵌套where子句中的顺序由条款

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

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

回答

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); 
+0

非常感谢!第一个建议并不适用于我,但第二个建议并不适用。 – DroidT