hibernate单列的多值查询

比如你的表主键是id,你要删除id 是 34,56,99 这样的。。

uid是拼好的 比如 '34','56','99' ,以前我会这样写

String queryString = "update Mail set dm=1 where uid in("+uid+")";
            Query queryObject = sess.createSQLQuery(queryString);
            queryObject.executeUpdate();
            tran.commit();

但其实可以这样使用setParameterList,uid 做成一个数组就可以了,不用拼的那么麻烦。

String queryString = "update Mail set dm=1 where uid in(:ids)";
            Query queryObject = sess.createSQLQuery(queryString);
            queryObject.setParameterList("ids", uid);
            queryObject.executeUpdate();
            tran.commit();


另外一个需要注意,使用这个时,uid数组的长度须大于0,否则会报异常 net.sf.hibernate.exception.SQLGrammarException

参考:

http://chedsk.blog.163.com/blog/static/23581288201132353226700/

http://spiritfrog.iteye.com/blog/197519

posted @ 2013-10-28 15:14  彼岸Elan  阅读(673)  评论(0编辑  收藏  举报