gpt4 book ai didi

java - 在 HQL 中使用 NOT IN 子句删除

转载 作者:行者123 更新时间:2023-11-30 06:06:31 26 4
gpt4 key购买 nike

我有一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com