在hibernate 查询in 查询中不能使用testQuery1方法查询
public void testQuery1(){ SessionFactory factory = null; Session session = null; factory = (SessionFactory) HibernateSessionFactory.getSessionFactory(); session = factory.openSession(); Integer id[] = new Integer[]{1,2,3,4}; String hql = "from Group as p where p.id in (?)"; Query query = session.createQuery(hql); query.setParameter(1, id); List list = query.list(); System.out.println(list.size()); session.close(); }
应该使用如下方法:
public void testQuery2(){ SessionFactory factory = null; Session session = null; factory = (SessionFactory) HibernateSessionFactory.getSessionFactory(); session = factory.openSession(); Integer id[] = new Integer[]{1,2,3,4}; String hql = "from Group as p where p.id in (:test)"; Query query = session.createQuery(hql); query.setParameterList("test", id); List list = query.list(); System.out.println(list.size()); session.close(); }
Integer id[] = new Integer[]{1,2,3,4};
String hql = "from Group as p where p.id in (:test)";
Query query = session.createQuery(hql);
query. setParameterList("test", id);
两者的区别之处在蓝色字体部分。