由于pagehelper和mybatisplus-core中分页插件版本冲突导致mybatisplus启动报错

由于pagehelper和mybatisplus-core中分页插件版本冲突导致mybatisplus启动报错

项目启动报错:

The following method did not exist:

net.sf.jsqlparser.schema.Column.withColumnName(Ljava/lang/String;)Lnet/sf/jsqlparser/schema/Column;

经过分析如下图的报错信息发现, 是mybatisplus在调用jsqlparser中的withColumnName方法的时候方法不存在

分析报错日志, 判断大概是jar包冲突导致版本不一致, 进而导致低版本的jsqlparser类中没有withColumnName方法, 导致报错

在这里插入图片描述

上图明显能看出跟interceptor有关, 而整个项目中只有在mybatis配置类中用过interceptor, 用做拦截分页, 将其注掉发现不再报错, 项目正常启动, 但是mybatis自动分页失效, 显然是不能这样解决的

在这里插入图片描述

那么我们只能从处理冲突入手, 使用maven的分析依赖工具查看冲突, 如下图所示

在这里插入图片描述

经过如上分析, 可以看出是mybatis-plus-extension与pagehelper中的jsqlparser冲突导致, 故进入pom文件找到pagehelper, 由于他引用的jsqlparser为2.0是低版本使用exclusion标签将pagehelper中的jsqlparser排除, 任何刷新maven

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <exclusions>
    <exclusion>
      <groupId>com.github.jsqlparser</groupId>
      <artifactId>jsqlparser</artifactId>
    </exclusion>
  </exclusions>
  <version>5.1.11</version>
</dependency>

再次进入依赖分析查看, jsqlparser版本已经变为4.4版本与mybatis-plus-extension一致

在这里插入图片描述

再次尝试, 启动项目成功!

总结: 由于mybatis-plus-extension和pagehelper都使用到了jsqlparser, 从而引入了不同版本,导致版本冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值