学习一个项目的过程中,发现了一个很奇怪的问题。
首先报错如下:
org.apache.ibatis.binding.BindingException: Parameter 'username' not found. Available parameters are [arg1, arg0, param1, param2]
原来出错的mapper:
解决方案一:添加Param注解
解决方案二:SQL语句内的参数改为arg或者param
原因:点击target目录进入编译好的mapper接口中,可以看到,原本的参数变为了var。
但是还有一种情况如下图所示,编译好的mapper接口中形参并未发生改变,可以直接在SQL语句中使用原本的形参而不会出现 上述Parameter '***' not found异常,不知道是不是IDEA版本的原因还是其它什么原因,希望有大佬能够解答一下。