比如你的表主键是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/