diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskQueryMapper.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskQueryMapper.java index abac4fef2..1f279e27d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskQueryMapper.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskQueryMapper.java @@ -593,6 +593,7 @@ public interface TaskQueryMapper { + "AND a.REF_VALUE IN(#{item}) " + "AND (UPPER(a.REF_VALUE) LIKE #{item}) " + " AND ( ( a.RECEIVED >= #{item.begin} AND a.RECEIVED <=#{item.end} )) " + + "AND (UPPER(t.${item}) LIKE #{wildcardSearchValueLike}) " + "" + "") Long countQueryTasks(TaskQueryImpl taskQuery); @@ -699,6 +700,7 @@ public interface TaskQueryMapper { + "AND a.REF_VALUE IN(#{item}) " + "AND (UPPER(a.REF_VALUE) LIKE #{item}) " + " AND ( ( a.RECEIVED >= #{item.begin} AND a.RECEIVED <=#{item.end} )) " + + "AND (UPPER(t.${item}) LIKE #{wildcardSearchValueLike}) " + " " + "), Y (ID, FLAG) AS " + "(SELECT ID, (SELECT 1 FROM WORKBASKET_ACCESS_LIST s WHERE " diff --git a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksByWildcardSearchAccTest.java b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksByWildcardSearchAccTest.java index 455530b71..0c7a2a268 100644 --- a/lib/taskana-core/src/test/java/acceptance/task/QueryTasksByWildcardSearchAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/task/QueryTasksByWildcardSearchAccTest.java @@ -18,18 +18,17 @@ import pro.taskana.task.api.models.TaskSummary; @ExtendWith(JaasExtension.class) class QueryTasksByWildcardSearchAccTest extends AbstractAccTest { + private static final TaskService TASK_SERVICE = taskanaEngine.getTaskService(); @WithAccessId(user = "admin") @Test void should_ReturnAllTasksByWildcardSearch_For_ProvidedSearchValue() { - TaskService taskService = taskanaEngine.getTaskService(); - WildcardSearchField[] wildcards = { WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME }; List foundTasks = - taskService + TASK_SERVICE .createTaskQuery() .wildcardSearchFieldsIn(wildcards) .wildcardSearchValueLike("%99%") @@ -41,15 +40,31 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest { @WithAccessId(user = "admin") @Test - void should_ReturnAllTasks_For_ProvidedSearchValueAndAdditionalParameters() { - TaskService taskService = taskanaEngine.getTaskService(); + void should_CountAllTasksByWildcardSearch_For_ProvidedSearchValue() { + WildcardSearchField[] wildcards = { + WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME + }; + long foundTasks = + TASK_SERVICE + .createTaskQuery() + .wildcardSearchFieldsIn(wildcards) + .wildcardSearchValueLike("%99%") + .orderByName(SortDirection.ASCENDING) + .count(); + + assertThat(foundTasks).isEqualTo(4); + } + + @WithAccessId(user = "admin") + @Test + void should_ReturnAllTasks_For_ProvidedSearchValueAndAdditionalParameters() { WildcardSearchField[] wildcards = { WildcardSearchField.CUSTOM_3, WildcardSearchField.CUSTOM_4, WildcardSearchField.NAME }; List foundTasks = - taskService + TASK_SERVICE .createTaskQuery() .wildcardSearchFieldsIn(wildcards) .wildcardSearchValueLike("%99%") @@ -64,19 +79,17 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest { @WithAccessId(user = "admin") @Test void should_ReturnAllTasksCaseInsensitive_When_PerformingWildcardQuery() { - TaskService taskService = taskanaEngine.getTaskService(); - WildcardSearchField[] wildcards = {WildcardSearchField.NAME}; List foundTasksCaseSensitive = - taskService + TASK_SERVICE .createTaskQuery() .wildcardSearchFieldsIn(wildcards) .wildcardSearchValueLike("%Wid%") .list(); List foundTasksCaseInsensitive = - taskService + TASK_SERVICE .createTaskQuery() .wildcardSearchFieldsIn(wildcards) .wildcardSearchValueLike("%wid%") @@ -90,11 +103,9 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest { @Test void should_ThrowException_When_NotUsingSearchFieldsAndValueParamsTogether() { - TaskService taskService = taskanaEngine.getTaskService(); - ThrowingCallable queryAttempt = () -> - taskService + TASK_SERVICE .createTaskQuery() .wildcardSearchValueLike("%99%") .orderByName(SortDirection.ASCENDING) @@ -104,7 +115,7 @@ class QueryTasksByWildcardSearchAccTest extends AbstractAccTest { queryAttempt = () -> - taskService + TASK_SERVICE .createTaskQuery() .wildcardSearchFieldsIn( WildcardSearchField.CUSTOM_1, WildcardSearchField.DESCRIPTION)