作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 issue_assigned 表,其中 user_id 为 Integer,问题编号为 Varchar。这些问题可以分配给多个用户。
现在有一个条件,如果问题之前分配给了 3 个用户,然后管理员只想将它分配给 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 是一个字符串,其中包含用逗号 (,) 分隔的用户 ID。执行时我得到 String cannot be caste to integer 错误。
如何保留所需用户并删除其余用户?我必须做哪些改变?
最佳答案
userIds is a string which contain userId seperated by comma(,)
不应该的。您应该只传递一个数组或用户 ID 集合。 Hibernate 将为您创建相应的 SQL 准备语句,方法是为每个用户 ID 添加一个参数占位符。
:userIds
两边的括号也不需要。
关于java - 在 HQL 中使用 NOT IN 子句删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848658/
我是一名优秀的程序员,十分优秀!