执行junit测试dao层,报错如下,
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [pageSize, rowIndex, param3, param1, productCondition, param2]
一开始以为是参数绑定错误是因为没有将dao层的参数全部传入mapper导致的,
List<Product> queryProductList(@Param("productCondition") Product productCondition, @Param("rowIndex")int rowIndex , @Param("pageSize") int pageSize);
这是mapper绑定,后来发现不是,
网上百度原因如下:
1.有多个参数时必须用@param注解
2.返回类型不对
逐个排查后这些都正确,后来调试了很久发现是在mapper.xml文件中用Ctrl+/注释的问题
idea注释为
-- 历历可见来得及like '% ${name}%'
注释之后,仍然会去查'% ${name}%'
将注释改为
<!-- -->后问题解决