org.apache.ibatis.binding.BindingException: Parameter 'eProjCode' not found. Available parameters are [arg0, param1, parms, param2]
报错日志:
从上截图中可以看出,主要问题是没有找到对应的参数,我们先看看dao层的代码和mapper.xml中的代码:
可以看出,dao层传入了一个对象和一个map(之前参数是一个对象,后来由于需求的变更,需要company_id有多个值,我在eption: Parameter ‘eProjCode’ not found. Available parameters are [arg0, param1, parms, param2])
报错日志: 从上截图中可以看出,主要问题是没有找到对应的参数,我们先看看dao层的代码和mapper.xml中的代码:
可以看出,dao层传入了一个对象和一个map(之前参数是一个对象,后来由于需求的变更,需要company_id有多个值,我在后面加了一个map用来保存company_id的值),map的参数前面加了一个@Param的注解,同时在mapper.xml文件中foreach遍历获取参数也没有发生错误,同时问题又是eProjCode获取不到参数,这个eProjCode是所传入对象的一个属性,所以接下来我们就知道如何去解决问题了。最终正确代码如下:
对,没错;解决方法就是在参数中给这个对象加入注解@Param,同时给定value值,告诉mapper.xml,在读取参数的时候去读取对应的值。
注意:导包的时候要注意,@Param所对应的包为:
import org.apache.ibatis.annotations.Param;