Closed Fudeveloper closed 1 year ago
如果升级到4.6会有新的问题产生。使用mysql-plus的insert 语句,sql会有情况出现两个空行。但是jsqlparser 4.6 在两个空行的情况下是无法解析的。
如果升级到4.6会有新的问题产生。使用mysql-plus的insert 语句,sql会有情况出现两个空行。但是jsqlparser 4.6 在两个空行的情况下是无法解析的。
方便贴一下表结构、SQL吗
修改别名避开 Jsqlparser
关键词,升级 3.5.3.2
后测试,还是未解决打开该问题反馈错误
当前使用版本(必填,否则不予处理)
mybatis-plus 3.5.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
此版本依赖的
JSqlParser
库,是4.4版本;它在由4.3升级时引入了bug,导致不支持cs
、ur
、uu
等 隔离级别的关键字。 相关bug:Allow isolation keywords as column name and aliasesjsqlparse
在4.5时修复了该问题,但由于4.5版本修改了values(...)
解析的实现逻辑,需要对mybatis-plus进行改造后才能升级。处理方案与建议
建议先将
JSqlParser
降级至4.3; 待我之后的PR将mybatis-plus 适配jsqlparse
4.5 后,可升级至4.5(4.5支持了许多新特性,并在解析速度上大幅度提升)。 已有同类PR:#5141 ,但4.5版本并不止这一个问题。该bug出现较难排查,在反复排查SQL语法、多租户插件运行无误后,阅读
mybatis-plus
源码、JSqlParser
的源码及issue,才定位出问题!重现步骤(如果有就写完整)
运行如下测试用例
报错信息