问题
最近遇到的一个项目升级了SpringBoot到3.x版本了,同时也准备升级MyBatis-Plus,即使用如下依赖:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version>
</dependency>
没想道,升级完MyBatis-Plus之后。PageHelper就不能用了。PageHelper目前也是用的最新的,具体配置如下:
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version>
</dependency>
原因
MyBatis-Plus和PageHelper都同时使用到一个jsqlparser的依赖库,然后,PageHelper要求使用的版本与jsqlparser版本有一个对应关系。具体对应关系,具体如下:
6.1版本PageHelper使用的jsqlparser库版本是4.7,具体如下:
所以,只要保持项目中jsqlparser库是4.7版本就可以了。
解决
具体做法,就是将MyBatis-Plus与PageHelper中的jsqlparser库排除后,再指定使用jsqlparser4.7就可以了。具体配置如下:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version><exclusions><exclusion><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>2.1.0</version><exclusions><exclusion><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId></exclusion></exclusions>
</dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.7</version>
</dependency>
总结
MyBatis-Plus与PageHelper最好别一起用。