确认

  • [ ] 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
  • [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题

当前程序版本

3.1.0

问题描述

xml文件中SQL定义如下: <select id="listExistConfigs" resultMap="BaseResultMap"> SELECT * from table_name WHERE (store_id, brand_id, sign_id) IN <foreach collection="list" item="item" open="(" separator="," close=")"> (#{item.storeId}, #{item.brandId}, #{item.signId}) </foreach> AND del_flag = 0 AND is_valid = 1 </select> 解析报错。

详细堆栈日志

Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId.
Caused by: net.sf.jsqlparser.JSQLParserException: null
    at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:154)
    at com.baomidou.mybatisplus.core.parser.AbstractJsqlParser.parser(AbstractJsqlParser.java:60)
    ... 203 common frames omitted
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "," ","
    at line 4, column 24.

Was expecting one of:

    "&&"
    ")"
    "AND"

    at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:19398)
    at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:19248)
    at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:6088)
    at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:6051)
    at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:6022)
    at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:5379)
    at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:3195)
    at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:3351)
    at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:3059)
    at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:3052)
    at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:132)
    at net.sf.jsqlparser.parser.CCJSqlParser.Statements(CCJSqlParser.java:455)
    at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:152)

Comment From: TinChi0818

???

Comment From: miemieYaho

MyBatis-Plus [错误报告]: 使用行行比较语法,解析报错:Failed to process, please exclude the tableName or statementId. 闷着头确认看都不看?