2014-07-18 33 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