mybatis-plus3.4.0逻辑删除报错

特别注意!!!

无论数据库字段,实体类字段,还是平时取其它字段名字时候,或者方法这些名字,一定不能和关键字重名,因为这样可能出现一些让人无法看出的错误

  1. 在进行mybatis-plus逻辑删除字段时候,我在数据库定义了delete字段定义为int类型,默认值是0,然后又在实体类中定义了这个字段delete并且在实体类的这个字段上面添加了注解@TableLogic,并且在application.properties中开启。(我使用的是3.4.0)
    在这里插入图片描述
    在这里插入图片描述

  2. 根据官方文档,在3.4.0版本中只需要以上两个步骤即可进行逻辑删除自动化,结果运行就报如下错误

在这里插入图片描述

  1. 于是我继续查看官方文档,或者百度,但是发现并没有配置出错。而且我还到issue去查看了一下,发现这也不是框架问题。于是我开始查看sql打印,发现就连sql也是正常的,那么问题到底出在了那里。
  2. 最后才发现原来是字段名出了问题
    我所使用的数据库字段名是delete并且实体类里面定义的也是delete。这是才发现这是一个比较敏感的关键字。所以我将delete进行了修改。最后运行发现运行成功了。所以特别注意有时候可能不是代码逻辑问题,而是忘了最基本的东西,那就是基础,Java命名规范

以下是我更改后运行成功的情况

在这里插入图片描述

在这里插入图片描述

Spring Boot与MyBatis-Plus整合时出现`setargNameBaseConstructorAutoMapping`错误通常是由于Spring Boot版本与MyBatis-Plus版本不兼容导致的。在Spring Boot 2.5.x版本中,可能需要调整MyBatis-Plus的配置以确保兼容性。这个问题可能是由于MyBatis-Plus在初始化时尝试设置参数名的自动映射,而Spring Boot 2.5.x默认使用Java 11,其中已经移除了`-parameters`编译器参数,导致无法正确识别方法参数名。 解决这个问题的一个方法是在`pom.xml`或`build.gradle`文件中添加相应的依赖来启用`-parameters`编译器参数。如果你使用的是Maven,可以在`maven-compiler-plugin`配置中添加如下配置: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <!-- 使用适合你项目的版本 --> <configuration> <compilerArgument>-parameters</compilerArgument> <source>1.8</source> <!-- 根据需要调整Java版本 --> <target>1.8</target> <!-- 根据需要调整Java版本 --> </configuration> </plugin> ``` 如果你使用的是Gradle,可以在`build.gradle`文件中添加如下配置: ```groovy tasks.withType(JavaCompile) { options.compilerArgs << "-parameters" } ``` 此外,确保在`application.properties`或`application.yml`文件中正确配置了MyBatis-Plus的参数,比如数据源和扫描路径等。 如果问题依然存在,请检查`@MapperScan`注解是否正确配置,以及MyBatis-Plus的依赖是否与Spring Boot版本兼容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值