From adcaad9f0a0c129cca7f8d280faa516fcf2bff84 Mon Sep 17 00:00:00 2001 From: Martin Rojas Miguel Angel Date: Mon, 20 Aug 2018 09:24:09 +0200 Subject: [PATCH] TSK-690 Split query mapper task count query Split query mapper task count query for db2 and other --- .../java/pro/taskana/impl/TaskQueryImpl.java | 9 +- .../pro/taskana/mappings/QueryMapper.java | 201 +++++++++--------- 2 files changed, 108 insertions(+), 102 deletions(-) diff --git a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java index 7b8108aea..bcca23c05 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/impl/TaskQueryImpl.java @@ -34,6 +34,7 @@ public class TaskQueryImpl implements TaskQuery { private static final String LINK_TO_MAPPER = "pro.taskana.mappings.QueryMapper.queryTaskSummaries"; private static final String LINK_TO_MAPPER_DB2 = "pro.taskana.mappings.QueryMapper.queryTaskSummariesDb2"; private static final String LINK_TO_COUNTER = "pro.taskana.mappings.QueryMapper.countQueryTasks"; + private static final String LINK_TO_COUNTER_DB2 = "pro.taskana.mappings.QueryMapper.countQueryTasksDb2"; private static final String LINK_TO_VALUEMAPPER = "pro.taskana.mappings.QueryMapper.queryTaskColumnValues"; private static final String TIME_INTERVAL = "TimeInterval "; private static final String IS_INVALID = " is invalid."; @@ -883,6 +884,12 @@ public class TaskQueryImpl implements TaskQuery { : LINK_TO_MAPPER; } + public String getLinkToCounterTaskScript() { + return this.taskanaEngine.sessionManager.getConfiguration().getDatabaseId().equals("db2") + ? LINK_TO_COUNTER_DB2 + : LINK_TO_COUNTER; + } + private void setupAccessIds() { if (taskanaEngine.isUserInRole(TaskanaRole.ADMIN) || !filterByAccessIdIn) { this.accessIdIn = null; @@ -985,7 +992,7 @@ public class TaskQueryImpl implements TaskQuery { taskanaEngine.openConnection(); checkOpenAndReadPermissionForSpecifiedWorkbaskets(); setupAccessIds(); - rowCount = taskanaEngine.getSqlSession().selectOne(LINK_TO_COUNTER, this); + rowCount = taskanaEngine.getSqlSession().selectOne(getLinkToCounterTaskScript(), this); return (rowCount == null) ? 0L : rowCount; } finally { taskanaEngine.returnConnection(); diff --git a/lib/taskana-core/src/main/java/pro/taskana/mappings/QueryMapper.java b/lib/taskana-core/src/main/java/pro/taskana/mappings/QueryMapper.java index 8e8236744..d4e7c3664 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/mappings/QueryMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/mappings/QueryMapper.java @@ -610,8 +610,105 @@ public interface QueryMapper { List queryWorkbasketAccessItems(WorkbasketAccessItemQueryImpl accessItemQuery); @Select("") + Long countQueryTasks(TaskQueryImpl taskQuery); + + + @Select("") - Long countQueryTasks(TaskQueryImpl taskQuery); + Long countQueryTasksDb2(TaskQueryImpl taskQuery); @Select("