当前使用版本(必须填写清楚,否则不予处理)
3.2.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
使用jsonb的运算符报错
重现步骤
select uc."id", u.nickname, u.avatar, b.title, uc.images, uc.created_at as createdAt from library.ugc_comment uc INNER JOIN library.book b on (uc.books_id ->> 0)::INTEGER = b."id" INNER JOIN library.users u ON uc.user_id = u.user_id where uc.id = 1
报错信息
Caused by: net.sf.jsqlparser.JSQLParserException at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:128) at com.baomidou.mybatisplus.core.parser.AbstractJsqlParser.parser(AbstractJsqlParser.java:60) ... 156 more Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "->>" "->>" at line 3, column 45.
Was expecting one of:
"&"
"&&"
Comment From: wjc1243
>;跟 cdata都试过了 不行
Comment From: miemieYaho
JSqlParser不支持解析
Comment From: miemieYaho
一般只有多租户那里会报错,建议把该method用注解过滤不走租户然后你自己设置租户条件
Comment From: wjc1243
@miemieYaho 我看之前的issue里你也提到了这个,我们好像没用多租户,而且我也没找到用啥注解,能直接告我下用哪个注解嘛,谢谢了。
Comment From: wjc1243
找到方法了,在mapper方法上使用 @SqlParser(filter=true) 排除 SQL 解析 注意!!全局配置 sqlParserCache 设置为 true 才生效。(MP 3.1.1开始不再需要这一步,这句话是官方文档上的我没试过) 感谢@miemieYaho
Comment From: xhu928181
3.5以上版本 可以使用 @InterceptorIgnore(tenantLine = "true")