日期:2014-05-18  浏览次数:20701 次

问个hibernate sqlquery 的问题

String ids = "1,2,3";
StringBuffer sql = new StringBuffer("delete from t_client where id in (:clientids)");
SQLQuery sqlQuery = getSession().createSQLQuery(sql.toString());
sqlQuery.setParameter("clientids", ids);
int result = sqlQuery.executeUpdate();


现在的问题是我如果sql中直接delete from t_client where id in ("+ids+")这样写就能删除3条。
但是我用setParameter设置参数只能删除1条。求原因。。。。

------解决方案--------------------
你这样写应该一条都删不了吧。
setParameter("clientids", ids);
把sql变成这样了。
delete from t_client where id in ('1,2,3');