我有一个表 issue_assigned ,其中user_id为Integer,发行号为Varchar。可以将问题分配给多个用户。
现在存在一个条件,如果该问题先前已分配给3个用户,然后admin只希望将其分配给2个用户,则系统应删除我编写的以下代码的第3个用户条目
String hql = "delete from issueAssigned where issueNumber=:issueNum AND assignedToUserId not in (:userIds)";
Query query = getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(hql);
query.setParameter("issueNum", issueNum);
query.setParameter("userIds", userIds);
if(query.executeUpdate() > 0){
return "success";
}else{
return "error";
}
userIds是一个字符串,其中包含用逗号(,)分隔的userId。执行时,我无法将String强制转换为整数错误。
如何保留所需的用户并删除其余用户?我将要做哪些更改?
最佳答案
userIds是一个字符串,其中包含用逗号(,)分隔的userId
不应该这样您应该只传递用户ID的数组或集合。通过为每个用户ID添加参数占位符,Hibernate将为您创建相应的SQL预准备语句。
并且也不需要:userIds
的括号。