BindingException: Parameter ‘ids‘ not found. Available parameters are [collection, list]
短信预约 -IT技能 免费直播动态提醒
记录没见过的Bug之BindingException
今天在写一个删除套餐功能时遇到个bug如下图所示:
我们都知道当一个请求参数有多个值接收时可以采用如下方式:
1. 使用数组接收 Long[] ids
2. 使用集合接收 List
这里我采用的是以集合方式来接收。
在Mapper接口中的方法如下
//动态sql long findCountByIds(List ids); //根据ids批量删除的套餐 void deleteByIds(List ids);
xml的sql语句如下:
#{id}
一切都看着那么的岁月静好,但最后运行却报错了。。。
分析原因:
原来在mybatis 中,当 Mapper传入的是 List 参数时,会自动将参数封装成 Map 参数,而 map中的 key 会自动用 list , value 就是你传入的 List 参数。
解决方法:
第一种: 将 List 参数封装为 Map 然后再传入,在 XML 配置页面写上相应 key 值.
第二种: 将 collection 的值修改为 list
这样报错就解决啦
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341