使用mybatis注解删除表中数据,传入数组时报错:Parameter ‘id‘ not found. Available parameters are [ids, param1]

本文讨论了一个在使用MyBatis进行批量删除时遇到的异常:org.springframework.web.util.NestedServletException,该异常源于参数未找到。错误代码中,@Delete注解的SQL拼接存在问题。正确的做法是使用@Delete配合多行字符串来定义SQL,确保参数能够正确绑定。修复后的代码展示了如何正确地批量删除用户角色。
摘要由CSDN通过智能技术生成

报错具体信息:org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘id’ not found. Available parameters are [ids, param1]
错误代码:

@Delete("delete from users where id in <foreach collection='ids' item='id' open='(' separator=',' close=')'>#{id}</foreach>")
void deleteUsersRoleByIds(@Param("ids") int[] ids) throws Exception;

正确代码:

@Delete({
        "<script>",
        "delete",
        "from users",
        "where id in",
        "<foreach collection='ids' item='id' open='(' separator=',' close=')'>",
        "#{id}",
        "</foreach>",
        "</script>"
})
void deleteUsersByIds(@Param("ids") int[] ids) throws Exception;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值