我正在寻找一种解决方案,通过过滤完成日期来查询Activiti中已完成的任务。因为一旦完成任务条目被BPMN引擎移入act_hi_taskinst
表,我希望所需的过滤器在HistoricTaskInstanceQuery
类中。但是,HistoricProcessInstanceQuery
中没有类似startedAfter
/ startedBefore
和finishedAfter
/ finishedBefore
方法的内容。该表包含start_time_
和end_time_
列,因此无法进行此类查询。
是否有其他方法可以按这些属性进行过滤,或者目前解决此问题的唯一方法是直接绕过Activiti引擎查询act_hi_tasks
表?
答案 0 :(得分:2)
Activiti提供Query 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();