一、该问题的重现步骤是什么?
1. bladex版本3.0.1.RELEASE
<bladex.project.version>3.0.1.RELEASE</bladex.project.version>
2. 当Mapper.xml里有包含子查询的sql语句被执行时,报错
at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)
at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:52)
at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:65)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:78)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
at com.sun.proxy.$Proxy990.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
... 134 common frames omitted
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "("
at line 12, column 15.
Was expecting one of:
"&"
"::"
";"
"<<"
">>"
"ACTION"
"ACTIVE"
"ALGORITHM"
"ARCHIVE"
"ARRAY"
"AS"
"AT"
"BYTE"
"CASCADE"
"CASE"
"CAST"
"CHANGE"
"CHAR"
请问有什么解决的办法么?
@InterceptorIgnore(tenantLine = "true")
该注解试过无法解决
你的sql有问题吧,把sql打印出来拿去数据库执行看下能不能执行。
sql直接执行是可以的
sql直接执行是正常的
相同的逻辑在其他项目中(bladex版本2.8.1.RELEASE,mybatisplus版本3.4.2)是正常的,sql也是正常的
但在bladex版本3.0.1.RELEASE,mybatisplus版本3.5.2中就报异常
我遇到的问题与https://blog.csdn.net/susu1083018911/article/details/123233230这个问题相似
用原生的mybatis-plus工程做一个demo,测试下你的这种写法在对应版本是否能生效。
如果脱离bladex,你的这个写法可以生效,麻烦把集成在bladex的demo发一份给我们:bladejava@qq.com
如果脱离bladex依旧无法生效,麻烦给mybatis-plus官方发个issue汇报下bug:https://gitee.com/baomidou/mybatis-plus/issues
扫一扫访问 Blade技术社区 移动端