@Select(" <script>SELECT\n" +
"\t*\n" +
"FROM\n" +
"\t(\n" +
"\t\tSELECT\n" +
"\t\t\tA.*\n" +
"\t\tFROM\n" +
"\t\t\t(\n" +
"\t\t\t\tSELECT DISTINCT\n" +
"\t\t\t\t\tRES.*\n" +
"\t\t\t\tFROM\n" +
"\t\t\t\t\tACT_HI_TASKINST RES\n" +
"\t\t\t\tWHERE\n" +
"\t\t\t\t\tRES.ASSIGNEE_ = #{userId}\n" +
"\t\t\t\tAND RES.END_TIME_ IS NOT NULL\n" +
"\t\t\t\tORDER BY\n" +
"\t\t\t\t\tRES.END_TIME_ DESC\n" +
"\t\t\t) A\n" +
"\t\tWHERE\n" +
"\t\t\t1 = 1\n" +
"\t) A\n" +
"WHERE\n" +
"\t1 = 1 <if test='taskId != null'> AND ID_ = #{taskId} </if><if test='taskName != null'> AND NAME_ = #{taskName} </if><if test='instanceId != null'> AND PROC_INST_ID_ = #{instanceId} </if> \n" +
"LIMIT #{offset},\n" +
" #{pageSize}" +
" </script> ")
List<Map> findDoneList(TaskVo taskVo);
采用若依分离版框架引入工作流引擎,上述代码报如下错误:
### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
near 'LIMIT 10' at line 41 ### The error may exist in com/ruoyi/activiti/mapper/TaskMapper.java (best
guess) ### The error may involve com.ruoyi.activiti.mapper.TaskMapper.findTodoList-Inline ### The
error occurred while setting parameters ### SQL: SELECT * FROM ( SELECT A.* FROM ( SELECT DISTINCT
RES.* FROM ACT_RU_TASK RES LEFT JOIN ACT_RU_IDENTITYLINK I ON I.TASK_ID_ = RES.ID_ WHERE
RES.SUSPENSION_STATE_ = 1 AND ( RES.ASSIGNEE_ = ? OR ( RES.ASSIGNEE_ IS NULL AND ( I.USER_ID_ = ? OR
I.GROUP_ID_ IN ( SELECT G.GROUP_ID_ FROM act_id_membership G WHERE G.USER_ID_ = ? ) ) ) ) ORDER BY
RES.CREATE_TIME_ DESC ) A ) A WHERE 1 = 1 LIMIT ?, ? LIMIT ? ### Cause:
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'LIMIT 10' at line 41 ; bad
SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL
syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
near 'LIMIT 10' at line 41
错误地方:WHERE 1 = 1 LIMIT ?, ? LIMIT ?
原因分析:mybatis解析limit,框架内已经有分页,sql中又加入了一层。