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

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

xml execute sql error,page count error,add /keep orderby/ count execute error

Encountered unexpected token

重现步骤(如果有就写完整)

define:

@InterceptorIgnore(tenantLine = "true", blockAttack = "true")
List queryMealSummary(MealSummaryQuery mealSummaryQuery);

xml:

   select
        a.region_id region,
        a.org_id organizeId,
        a.meal_type_id mealTypeId
    from (
        select
            b.region_id,
            b.org_id,
            a.meal_type_id
        from (
            select
                a.customer_id,
                a.meal_type_id
            from cai_dining_calendar a
            <where>
                a.eat_flag = 1 and a.dining_date = #{diningDate} and a.tenant_code = #{tenantCode}
                <if test="mealTypeIds != null and mealTypeIds.size > 0">
                    and a.meal_type_id in
                    <foreach collection="mealTypeIds" item="mealTypeId" index="index" open="(" close=")" separator=",">
                        #{mealTypeId}
                    </foreach>
                </if>
            </where>
        ) a inner join json_table (
                #{regionOrgCustomerRelTable},
                '$[*]' COLUMNS (
                    `region_id` bigint PATH '$.a' ERROR ON ERROR,
                    `org_id` bigint PATH '$.b' ERROR ON ERROR,
                    `customer_id` bigint PATH '$.c' ERROR ON ERROR
                )
        ) b on a.customer_id = b.customer_id
        group by b.region_id,b.org_id,a.meal_type_id
    ) a
    order by a.region_id,a.org_id,a.meal_type_id
    /*keep orderby*/

报错信息

at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39) at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:37) at com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor.beforeQuery(TenantLineInnerInterceptor.java:70) at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:62) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) at com.sun.proxy.$Proxy407.query(Unknown Source) at com.github.pagehelper.util.ExecutorUtil.executeAutoCount(ExecutorUtil.java:166) at com.github.pagehelper.PageInterceptor.count(PageInterceptor.java:157) at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:100) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) at com.sun.proxy.$Proxy407.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 119 common frames omitted Caused by: net.sf.jsqlparser.JSQLParserException: null at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:65) at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:40) at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:34) ... 129 common frames omitted Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "(" at line 19, column 39.

Was expecting one of:

")"
","
"ACTION"
..............
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:25031)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:24875)
at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:5941)
at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:4055)
at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:4264)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:3923)
at net.sf.jsqlparser.parser.CCJSqlParser.SubSelect(CCJSqlParser.java:12580)
at net.sf.jsqlparser.parser.CCJSqlParser.FromItem(CCJSqlParser.java:5840)
at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:4055)
at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:4264)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:3923)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:3916)
at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:130)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:81)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)
... 131 common frames omitted

Comment From: miemieYaho

jsqlparser 不支持

Comment From: 2259289435

可以通过升级解决问题吗?

Comment From: miemieYaho

你这看着像想不走租户插件但是走了租户插件,方便提供一下完整的demo吗? 或者你也可以自己debug InterceptorIgnoreHelper#willIgnoreTenantLine方法看看是什么原因

Comment From: qmdx

up

Comment From: JunCheung

遇到同样的问题,sql语句中使用json_table就出现