登录
首页 >  数据库 >  MySQL

[19051501]记录一次日常犯的错

来源:SegmentFault

时间:2023-02-24 13:09:26 481浏览 收藏

你在学习数据库相关的知识吗?本文《[19051501]记录一次日常犯的错》,主要介绍的内容就涉及到MySQL、Java、spring、springboot、mybatis,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

Parameter 'array' not found. Available parameters are [collection, list]

莫名其妙,今天写代码遇到个低级错误,困扰了好久,测试突然给提了个缺陷,说业务逻辑有问题
于是,就启动了缺陷排查的流程

1.问题复现
   根据问题复现步骤,确实发现业务逻辑不对
2.代码排查
   根据代码排查,业务逻辑确实写了,对表的更新
3.日志排查
   根据日志排查,发现新增的代码并没有执行,而且,也没有报错。随后就进行了纠结(现在都想敲死自己,应该不用纠结,在编辑器debug跑一遍,问题就暴露出来了)。
4.解决问题
   先使用单测,跑了一遍对应的方法,发现确实没有问题,所以怀疑,是因为MOCK掉的DAO方法,抛了一个异常,然后没有显式的抛出来,所以就手动debug启动了下应用,就是POSTMAN测试,果然,报错如下:

nested exception is org.apache.ibatis.binding.BindingException: Parameter 'array' not found. Available parameters are [collection, list]

这里是因为,在mybaits传集合参数,进行循环时,一定要指定集合类型,目前mybaits对List集合和Array集合,是不同,需要在循环时指定对应的集合,如果使用类似于Long[] 等进行传参时,一定要指定collection="array",如果使用List进行传参时,需要指定collection="list",否则就会抛异常。
至于为什么在服务器上没有抛异常出来,很可能是被框架给吃掉了,需要进一步排查。

理论要掌握,实操不能落!以上关于《[19051501]记录一次日常犯的错》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表