Mybatis 较高版本,支持mapper层多参,可以不加@Param(“name”)指定名称,但是idea2018版本需要加-parameters,2019以上版本会默认加上该参数,不需要调整。
Mapper层接口示例:
编译后的class文件参数名字发生的变化,和xml文件中sql对应的#{参数名}对应不起来}:
项目启动报错信息:
11:15:40.321 [http-nio-8083-exec-18] ERROR c.h.d.c.e.RRExceptionHandler - [handleException,63] - nested exception is org.apache.ibatis.binding.BindingException: Parameter 'doctorId' not found. Available parameters are [arg1, arg0, param1, param2]
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'doctorId' not found. Available parameters are [arg1, arg0, param1, param2]
.2…sdf
将idea做如下图所示的配置,然后清空缓存,clean, rebuildProject 就能解决,不加@Param多参数时,参数名绑定失败的问题了。