我正在寻找通过过滤完成日期来查询Activiti中已完成的任务的解决方案。因为一旦它们完成了已完成的任务条目,就会被BPMN引擎移到act_hi_taskinst
表中,所以我希望所需的过滤器位于HistoricTaskInstanceQuery
类中。但是没有HistoricProcessInstanceQuery
中startedAfter
/startedBefore
、finishedAfter
/finishedBefore
的方法。表中有start_time_
和end_time_
列,所以没有理由不允许这种查询。
是否有其他方法可以通过这些属性进行过滤,或者目前唯一的方法是直接绕过Activiti引擎查询act_hi_tasks
表?
Activiti提供查询API,因此不需要直接查询act_hi_taskinst
。
您的查询可能像这样
NativeHistoricTaskInstanceQuery taskQuery = historyService.createNativeHistoricTaskInstanceQuery();
taskQuery.sql("SELECT * FROM "+ managementService.getTableName(HistoricTaskInstance.class)+" WHERE start_time_=#{startTime} AND end_time_=#{endTime}");
taskQuery.parameter("startTime", startTime).parameter("endTime", end_time);
List<HistoricTaskInstance> tasks = taskQuery.list();