2010-06-09 94 views
0

我想construt一個HQL查詢一樣HQL形成查詢

select PLAN_ID from "GPIL_DB"."ROUTE_PLAN" where ASSIGNED_TO 
     in ('prav','sheet') and END_DATE > todays date 

我做的這樣,但得到一個錯誤,在設置參數

s=('a','b'); 
Query q = getSession().createQuery("select planId from RoutePlan where assignedTo in REG "); 
if(selUsers != null) { 
    q.setParameter("REG", s); 
} 

我在哪裏做錯了嗎?請幫助執行基於hwl的查詢,其中包含條款

回答

1

您需要在查詢中分配參數列表。還要注意參數周圍的括號,因爲它是'in'查詢。

Query q = getSession() 
     .createQuery("select planId from RoutePlan where assignedTo in (:REG) "); 
if(selUsers != null) { 
    q.setParameterList("REG", s); 
} 

你可以閱讀更多有關如何在the hibernate reference使用參數HQL,但是這是從那裏粘貼相關的例子:

//named parameter list 
List names = new ArrayList(); 
names.add("Izi"); 
names.add("Fritz"); 
Query q = sess.createQuery("from DomesticCat cat where cat.name in (:namesList)"); 
q.setParameterList("namesList", names); 
List cats = q.list();