目录
我又遇到这个问题了,这次的出错原因更狗血,欲知我如何解决bug,说来话长,那我就长话短说了。
项目场景:
今天用mybatis实现数据库的批量insert操作时,foreach的colleciton处出现错误org.apache.ibatis.binding.BindingException: Parameter 'chessMsgList' not found. Available parameters,说是找不到collection属性指定的参数
问题描述
mybatis批量insert时,foreaach的collection出现参数找不到的情况
原因分析:
没有在mapper接口中为参数添加@Param注解
解决方案:
为mapper接口为参数添加@Param注解,虽然我定义的函数只有一个参数,网上很多帖子也说一个参数的函数不用加注解,但这招确实好使啊
这是我的xml文件:
这是对应的interface文件:
注意:@Param不要导包导错了,一共有两个包,我一开始就是导错了,导致问题没有解决。认准下图的这个包:
我又遇到这个问题了,这次的出错原因更狗血,欲知我如何解决bug,说来话长,那我就长话短说了。
解决方案:
把mapper文件加上.xml后缀,因为IDEA自动帮我在mapper包下生成了xml文件,而且功能、图标也和xml文件没什么两样,除了文件名没有.xml后缀,就是一模一样了。可是估计mybatis没有认出来吧,我加上后缀之后,问题解决,奈斯。