无论是查询待办还是已办,当你对query加上
.includeProcessVariables()方法后,activiti会按照自定义的最大值(默认是20000)来查出所有数据,然后在结果中处理分页。这会导致相当大的数据量。
int firstResult = historicTaskInstanceQuery.getFirstResult();
int maxResults = historicTaskInstanceQuery.getMaxResults();
// setting max results, limit to 20000 results for performance reasons
if (historicTaskInstanceQuery.getTaskVariablesLimit() != null) {
historicTaskInstanceQuery.setMaxResults(historicTaskInstanceQuery.getTaskVariablesLimit());
} else {
historicTaskInstanceQuery.setMaxResults(getProcessEngineConfiguration().getHistoricTaskQueryLimit());
}
historicTaskInstanceQuery.setFirstResult(0);
List<HistoricTaskInstance> instanceList = getDbSqlSession().selectListWithRawParameterWithoutFilter("selectHistoricTaskInstancesWithVariablesByQueryCriteria", historicTaskInstanceQuery,
historicTaskInstanceQ