2016-04-22 5 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(); 

以下のコードが機能するかどうかはわかりませんが、私は検索文字列パラメータに値のリストを渡すことができますか? 1つはステータスに関係なくすべてのデータを選択し、もう1つはアクティブなデータのみを選択するためのものです。クエリパラメータの値のリストを渡します

答えて

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();