2016-04-22 92 views
0
String hql = "select * from myTable where isActive IN (:isActive)"; 
     Query query = session.createQuery(hql); 
     query.setString("school",""); 
     query.setString("isActive", "Y");//working 
     query.setString("isActive", "N");//working 
     query.setString("isActive", "Y","N"); // not working 
     query.setString("isActive", "'Y','N'"); // not working 
     return query.list(); 

我不知道如果下面的代码应该工作,我想知道如果我可以传递值列表到我的搜索字符串参数,所以我不需要创建查询;一个用于选择所有数据而不管状态,另一个用于仅选择活动数据。查询参数值的通过列表

回答

2

使用Query.setParameterList()List以作为参数传递:

String hql = "select * from myTable where isActive IN (:isActive)"; 
Query query = session.createQuery(hql); 
List<String> isActiveList = new ArrayList<>(); 
isActiveList.add("Y"); 
isActiveList.add("N"); 
query.setParameterList("isActive", isActiveList); 
return query.list();