当前使用版本(必须填写清楚,否则不予处理)

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")