org.apache.ibatis.binding.BindingException异常解决

【问题现象】
前台页面没有显示应有的图形,但是同事的电脑本地运行正常显示

【问题排查】
1.查看页面js是否有报错信息
没有报错
2.查看后台日志是否有报错信息
后台日志报错:
image.png

【问题分析】
分析可能是如下两个原因
1.同事本地有部分代码没有提交完全,即代码不一致导致的爆错
2.我们连接的数据库不是一个库,即数据不一致导致的爆错
逐一排查上述两个原因,发现代码与数据库都是一致的,就有点纳闷了。

于是又仔细看了看报错信息,看到关键位置:org.apache.ibatis.binding.BindingException: Parameter ‘relationId’ not found. Available parameters are [arg1, arg0, param1, param2]
报错信息明确指出是调用的方法参数relationId没有找到,并不是没有relationId形参没有值,所以联想到会不会是mybatis通过反射获取不到方法参数,于是又查了资料确认了下:jdk1.8之前没有原生的方式获取方法参数名,1.8要在编译时指定-parameters参数才可以。
项目使用的是jdk1.8,但是并没有在IDE中配置javac -parameters

【解决方式】
有两种解决方式,根据自己需求任选一种就可以了
1.在IDE中进行配置,下图中1或2处配置一处就可以了
image.png
这里提供的是IDEA的配置方式,eclipse应该也有对应的配置,自行百度。。。

2.在接口的方法参数前使用@Param注解指定名称
image.png

おすすめ

転載: blog.csdn.net/csdnklsdm/article/details/117968856