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

mybatis-plus 3.5.2

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

将业务系统mybatis-plus版本从3.4.1升级至3.5.2,业务逻辑无变化,传相同参数进行查询报sql解析错误 尝试升级到最新版3.5.3.1,也报相同错误 版本降低到3.5.0则正常 推测与jsqlparser升级到4.4有关,强制降低至4.3尝试,查询正常,升级至最新的4.6,查询也正常,建议官方考虑一下默认jsqlparser兼容性

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

    @Select({
            " select u.id userId,ur.id userRoleId,u.name userName,u.login_account_name loginAccountName",
            " from its3_user u ",
            " left join its3_user_role ur on ur.user_id = u.id",
            " where ur.role_id = #{roleId}"
    })
    List<QueryUserListDTO> queryByRoleId(@Param("roleId") Integer roleId);

报错信息

Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, Error SQL: select u.id userId, ur.id userRoleId, u.name userName, u.login_account_name loginAccountName  from its3_user u     left join its3_user_role ur on ur.user_id = u.id  where ur.role_id = ?
    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.$Proxy257.query(Unknown Source)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
    ... 99 common frames omitted
Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "," ","
    at line 1, column 19.

Was expecting one of:

    ";"
    "CONNECT"
    "EMIT"
    "GROUP"
    "HAVING"
    "INTO"
    "START"
    "WINDOW"
    <EOF>

    at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:31468)
    at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:31301)
    at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:163)
    at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:188)
    at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:63)
    at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:38)
    at com.baomidou.mybatisplus.extension.parser.JsqlParserSupport.parserSingle(JsqlParserSupport.java:49)

Comment From: tltwuyu

我遇到了一样的问题。

Comment From: wichell

升级后 jsqlparse 也升级到了4.4版本,这个版本里 ur 不能用来做表的别名 ,换过一个名字就行了。

Comment From: dengliming

换名字还存在其他问题,我是先回退jsqlparser到4.3版本了

Comment From: nieqiurong

5142 合并至此处讨论