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

3.3.1

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

select art.ID_ as taskId, art.PROC_INST_ID_ as processInstanceId, art.PROC_DEF_ID_ as prodefId, art.NAME_ as taskName, art.ASSIGNEE_ as userId, art.TASK_DEF_KEY_ as nodeKey, su.REALNAME as realName, sd.SIMPLE_NAME as deptNameLong, art.START_TIME_ as startTime, art.END_TIME_ as endTime, case when ac.TYPE_ is null then Translate('处理中' USING NCHAR_CS)
else ac.TYPE_ end AS type,

             ac.MESSAGE_       as fullMessage,
             ac.TIME_ as time
      from ACT_HI_TASKINST art
                   left join SYS_USER su on art.ASSIGNEE_ = su.USERNAME
                   left join SYS_DEPT sd on sd.DEPT_ID = su.DEPT_ID
                   left join ACT_HI_COMMENT ac on ac.TASK_ID_ = art.ID_
              where 1 = 1

在sql中使用了Translate函数就出现了这个问题。

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

select art.ID_ as taskId, art.PROC_INST_ID_ as processInstanceId, art.PROC_DEF_ID_ as prodefId, art.NAME_ as taskName, art.ASSIGNEE_ as userId, art.TASK_DEF_KEY_ as nodeKey, su.REALNAME as realName, sd.SIMPLE_NAME as deptNameLong, art.START_TIME_ as startTime, art.END_TIME_ as endTime, case when ac.TYPE_ is null then Translate('处理中' USING NCHAR_CS)
else ac.TYPE_ end AS type,

             ac.MESSAGE_       as fullMessage,
             ac.TIME_ as time
      from ACT_HI_TASKINST art
                   left join SYS_USER su on art.ASSIGNEE_ = su.USERNAME
                   left join SYS_DEPT sd on sd.DEPT_ID = su.DEPT_ID
                   left join ACT_HI_COMMENT ac on ac.TASK_ID_ = art.ID_
              where 1 = 1

在sql中使用了Translate函数就出现了这个问题。

报错信息

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId. Error SQL: select art.ID_ as taskId, art.PROC_INST_ID_ as processInstanceId, art.PROC_DEF_ID_ as prodefId, art.NAME_ as taskName, art.ASSIGNEE_ as userId, art.TASK_DEF_KEY_ as nodeKey, su.REALNAME as realName, sd.SIMPLE_NAME as deptNameLong, art.START_TIME_ as startTime, art.END_TIME_ as endTime, case when ac.TYPE_ is null then Translate('处理中' USING NCHAR_CS)
else ac.TYPE_ end AS type,

             ac.MESSAGE_       as fullMessage,
             ac.TIME_ as time
      from ACT_HI_TASKINST art
                   left join SYS_USER su on art.ASSIGNEE_ = su.USERNAME
                   left join SYS_DEPT sd on sd.DEPT_ID = su.DEPT_ID
                   left join ACT_HI_COMMENT ac on ac.TASK_ID_ = art.ID_
              where 1 = 1


          AND art.PROC_INST_ID_ = ?

      order by art.END_TIME_ desc
at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:39)
at com.baomidou.mybatisplus.core.parser.AbstractJsqlParser.parser(AbstractJsqlParser.java:74)
at com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler.sqlParser(AbstractSqlParserHandler.java:76)
at com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor.intercept(PaginationInterceptor.java:175)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy307.prepare(Unknown Source)
at sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.easycloud.jxcmcc.common.data.datascope.DataScopeInterceptor.intercept(DataScopeInterceptor.java:83)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy307.prepare(Unknown Source)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:92)
at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:66)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:163)
at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:90)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
... 128 common frames omitted

Caused by: net.sf.jsqlparser.JSQLParserException: null at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatements(CCJSqlParserUtil.java:137) at com.baomidou.mybatisplus.core.parser.AbstractJsqlParser.parser(AbstractJsqlParser.java:60) ... 146 common frames omitted Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "(" "(" at line 11, column 62.

Was expecting one of:

"&"
"::"
"<<"
">>"
"COLLATE"
"ELSE"
"END"
"WHEN"
"["
"^"
"|"

Comment From: ndwzy

解析sql用的是JSQLParser这个解析器 有些sql的内置方法会无法识别 需要更换sql写法

Comment From: qmdx

sql 无法解析 page 关闭 sql 优化