JSQLParserException异常

本文探讨了在SQL中加入租户字段时遇到的问题,包括解析错误、递归SQL不支持、mybatisPlus多租户过滤以及count函数嵌套if函数引发的异常。提供了针对这些问题的解决方法和版本升级建议。
摘要由CSDN通过智能技术生成

前言

SQL中加入了租户字段,报这个错,可以查出数据,但是不多;SQL检查无问题

解决

原因一

引入新的SQL解析器检查解析SQL,与mybatis多租户无关
参考

<!--jsqlparser版本太低也无法解析,如2.0-->
<dependency>
   <groupId>com.github.jsqlparser</groupId>
   <artifactId>jsqlparser</artifactId>
   <version>4.2</version>
</dependency>

原因二

SQL递归,当前mybatis不支持SQL递归导致报错,使用一可以解决,但是可能会引起其他SQL报错,注意防范

原因三

多租户,mybatis多租户过滤拦截,使用mybatisPlus用户可尝试加入忽略租户过滤

Mybatis-Plus3.4+,使用拦截忽略注解@InterceptorIgnore(tenantLine = "true")
在这里插入图片描述
请注意:Mybatis-Plus3.4之前的版本使用注解@SqlParser(filter=true)

原因四

原因是count函数中嵌套了if函数导致抛异常,不使用“count(if(exprt))”嵌套函数就不会出现异常;
产生异常的原因可能是在后台查询的sql语句中才用了一些sql可能不支持的函数:例如IF(isnull(warning_id), 0 , 1)等,我出现这个这个异常就是sql使用了该if判断条件导致的。改正后不再抛该异常。
或者升级分页的插件(pagehelper)版本也能得到解决
参考链接

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值