使用Activiti5.19.0遇到的一个问题

cryingcrane 发布于 2015/11/17 18:45
阅读 2K+
收藏 1

@咖啡兔 你好,想跟你请教个问题:本人第一次使用activiti,下载了官网最新版本的activiti 5.19.0,在使用中发现流程查询就有问题。代码如下:

TaskService taskService = processEngine.getTaskService();  
        List<Task> taskList = taskService.createTaskQuery().list();
报错如下:


org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.sql.SQLException: ORA-00936: missing expression

### The error may exist in org/activiti/db/mapping/entity/Task.xml
### The error may involve org.activiti.engine.impl.persistence.entity.TaskEntity.selectTaskByQueryCriteria-Inline
### The error occurred while setting parameters
### SQL: select * from ( select a.*, ROWNUM rnum from (     select distinct RES.*              from ACT_RU_TASK RES                                                                     order by  order by RES.ID_ asc         ) a where ROWNUM < ?) where rnum  >= ?
### Cause: java.sql.SQLException: ORA-00936: missing expression

我定位错误应当在标红位置,sql语句出现2个order by,于是进入activiti源码中org/activiti/db/mapping/entity/Task.xml中selectTaskByQueryCriteria

<select id="selectTaskByQueryCriteria" parameterType="org.activiti.engine.impl.TaskQueryImpl" resultMap="taskResultMap">
    ${limitBefore}
    select distinct RES.* ${limitBetween}
    <include refid="selectTaskByQueryCriteriaSql"/> 
    ${orderBy}
    ${limitAfter}
  </select>

删除${orderBy}后,即可调用正常。请问是我使用错误,还是activiti5.19.0本身的bug呢?

最后附上修改后返回数据成功后截图:


加载中
1
行走天涯
activiti 还不能支持mybatis3.3.0,可以使用 mybatis3.2.8 或者 mybatis 3.2.5  官方推荐的好像是 3.2.5
c
cryingcrane
非常感谢回复,待我实践一下是否是版本问题。
1
行走天涯
https://github.com/Activiti/Activiti/issues/597
0
c
cryingcrane

引用来自“行走天涯”的评论

https://github.com/Activiti/Activiti/issues/597
果然是这个原因,非常感谢这位大神指点迷津。
0
咖啡兔
咖啡兔
ok,应该是bug,你可以给官方提供修复的代码[13]
0
Amayadream
Amayadream
这个问题我也遇到了,把mybatis版本回滚到3.2.6就好使了.
返回顶部
顶部