记录一:NativeTaskQuery
Flowable 中的查询有两种方式:查询API和原生(Native)查询
查询API例如:
taskService.createTaskQuery() .taskAssignee("aaa")
原生查询例如:
taskService.createNativeTaskQuery() .sql()
如果一开始对原生查询的sql怎么写不好把握,可以通过查询API的方式内部运行的sql,来改写或者组装。
例如通过下面查询历史任务记录的方法报错中提示的sql,来梳理查询历史记录所涉及的表关系
### The error may involve org.flowable.task.service.impl.persistence.entity.HistoricTaskInstanceEntityImpl.selectHistoricTaskInstancesByQueryCriteria-Inline
### The error occurred while setting parameters
### SQL: SELECT RES.* from ACT_HI_TASKINST RES WHERE RES.ASSIGNEE_ = ? and RES.ASSIGNEE_ is null and EXISTS(select LINK.ID_ from ACT_HI_IDENTITYLINK LINK where LINK.TYPE_ = 'candidate' and LINK.TASK_ID_ = RES.ID_ and ( LINK.USER_ID_ = ?