hibernate in 查询

http://blog.csdn.net/tanggoodboy/article/details/4161679
在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);



两者的区别之处在蓝色字体部分。

猜你喜欢

转载自panyongzheng.iteye.com/blog/1916182