From b0102f523ff946ef0779aae696c8130db6d971a7 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Wed, 5 Aug 2020 15:20:15 +0300 Subject: [PATCH] Complex predicate fix --- .../thingsboard/server/dao/sql/query/EntityKeyMapping.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityKeyMapping.java b/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityKeyMapping.java index 920573ee4c..221ed472e7 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityKeyMapping.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityKeyMapping.java @@ -426,11 +426,15 @@ public class EntityKeyMapping { private String buildComplexPredicateQuery(QueryContext ctx, String alias, EntityKey key, ComplexFilterPredicate predicate, EntityFilterType filterType) { - return predicate.getPredicates().stream() + String result = predicate.getPredicates().stream() .map(keyFilterPredicate -> this.buildPredicateQuery(ctx, alias, key, keyFilterPredicate, filterType)) .filter(Objects::nonNull).collect(Collectors.joining( " " + predicate.getOperation().name() + " " )); + if (!result.trim().isEmpty()) { + result = "( " + result + " )"; + } + return result; } private String buildSimplePredicateQuery(QueryContext ctx, String alias, EntityKey key,