nested exception is org.apache.ibatis.binding.BindingException 解决方式汇总

news/2024/12/5 9:15:10/

前言

MyBatis Mapper出现了nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘levelName’ not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2],说明是Mapper接口方法的参数在编译的时候没有按照代码写的参数来进行。需要解决这个问题,可以从以下方面入手。

Maven Compiler插件

从Java 1.8开始,编译的时候加上 -parameters 是可以将参数名保存到class文件里的,
而使用 Apache Maven Compiler插件,加上一点配置,是可以自动将这个参数加上的,
如果发现没有引入这个插件,或者这个插件没有开启parameters,可以尝试加上这个参数。

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><parameters>true</parameters></configuration></plugin></plugins>
</build>

另外,需要注意的是parameters参数是3.6.1以后加入的功能,所以要保证maven-compiler-plugin的版本是3.6.1以上。

Maven Resouces插件

还有一种可能是没有使用maven-resources-plugin,将sql mapper的xml文件打到包里面,
可以检查下项目的pom中是否引入了这个插件

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><propertiesEncoding>${project.build.sourceEncoding}</propertiesEncoding><delimiters><delimiter>${resource.delimiter}</delimiter></delimiters><useDefaultDelimiters>false</useDefaultDelimiters></configuration></plugin></plugins>
</build>

@Param注解

其实如果你的pom工程是基于 spring-boot-starter-parent 构建的,而且自己也没有重新定义过插件的配置,那么应该是不会出现问题的:

   <parent><groupId>org.springframework.boot</groupId><artifactId>weareint-spring-boot-dependencies</artifactId><version>2.6.x</version></parent>

反之,如果是团队自己维护的parent,而团队暂时无法解决这个问题时,只能自己辛苦点,在自己的Mapper方法参数前,加上@Param注解

import org.apache.ibatis.annotations.Param;@Mapper
public interface MyMapper {int countByCode(@Param("code") String code);
}

http://www.ppmy.cn/news/13080.html

相关文章

【C++】红黑树

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《吃透西嘎嘎》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;红黑树&a…

EasyExcel学习笔记

EasyExcel学习笔记 EasyExcel 用于 Java解析、生成Excel&#xff0c;是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 官方文档地址&#xff1a;https://alibaba-easyexcel.github.io/index.html 。 1.excel导出步骤 第…

springcloud + nacos多环境联调、本地联调(即灰度版本)

背景&#xff1a;当我们使用nacos为注册中心注册微服务时&#xff0c;想本地环境和测试环境公用一个nacos&#xff0c;即注册中心等基础服务共用。当我们在服务A开发时&#xff0c;本地服务和测试环境服务都是注册到同一个nacos&#xff0c;由于nacos自带负载均衡策略&#xff…

【4 - 降维算法PCA和SVD - 原理部分】菜菜sklearn机器学习

课程地址&#xff1a;《菜菜的机器学习sklearn课堂》_哔哩哔哩_bilibili 第一期&#xff1a;sklearn入门 & 决策树在sklearn中的实现第二期&#xff1a;随机森林在sklearn中的实现第三期&#xff1a;sklearn中的数据预处理和特征工程第四期&#xff1a;sklearn中的降维算法…

python textwrap 模块,这里有你需要的学习资料

Python 标准库中的 textwrap 模块可以把长文本按照指定的宽度进行换行。这个模块提供了一些高级的文本处理功能&#xff0c;例如按照指定的宽度进行自动换行&#xff0c;保留段首缩进等。 python textwrap 模块python textwrap 模块主要函数textwrap.wrap(text, width70, \*\*k…

Xpath Helper 在新版Edge中的安装及解决快捷键冲突问题

&#x1f935;‍♂️ 个人主页老虎也淘气 个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…

ESP32 (WIFI)-AP、STA模式(13)

提示&#xff1a;本博客作为学习笔记&#xff0c;有错误的地方希望指正 文章目录一、ESP32 WIFI模式概述二、ESP32 WIFI-AP初始化流程三、WIFI-AP示例四、ESP32 WIFI-STA初始化流程五、WIFI-STA示例一、ESP32 WIFI模式概述 参考资料&#xff1a;ESP IDF编程手册V4.4   WIFI主…

Linux 环境部署 Nexus 服务

一 私服是什么&#xff1f; 一个特殊的远程仓库&#xff0c;它是架设在局域网内的仓库服务&#xff0c;供局域网内的开发人员使用。 当Maven需要下载构建的使用&#xff0c; 它先从私服请求&#xff0c;如果私服上没有的话&#xff0c;则从外部的远程仓库下载&#xff0c;然后…