diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/db_direct/DBPredicateBuilder.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/db_direct/DBPredicateBuilder.java index bd66a4760..ab47d61ac 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/db_direct/DBPredicateBuilder.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/db_direct/DBPredicateBuilder.java @@ -42,16 +42,19 @@ public class DBPredicateBuilder extends ImdgPredicateBuilderHazelcast { @Override public ImdgPredicate equals(String key, Object value) { + if (value == null) return isNull(key); return new DBPredicate(" (%s = %s) ".formatted(replaceKey(key), replaceValue(value))); } @Override public ImdgPredicate greatEqual(String key, Comparable value) { + if (value == null) return isNull(key); return new DBPredicate(" (%s >= %s) ".formatted(replaceKey(key), replaceValue(value))); } @Override public ImdgPredicate lessEqual(String key, Comparable value) { + if (value == null) return isNull(key); return new DBPredicate(" (%s <= %s) ".formatted(replaceKey(key), replaceValue(value))); } @@ -77,6 +80,9 @@ public class DBPredicateBuilder extends ImdgPredicateBuilderHazelcast { @Override public ImdgPredicate in(String key, Comparable... values) { + if (values == null || values.length == 0) { + return new DBPredicate(" (false) "); + } return new DBPredicate( " (%s in (%s)) ".formatted( replaceKey(key), @@ -94,7 +100,7 @@ public class DBPredicateBuilder extends ImdgPredicateBuilderHazelcast { @Override public ImdgPredicate not(ImdgPredicate param) { - throw new UnsupportedOperationException("not implemented"); + return new DBPredicate(" (not (%s)) ".formatted(param.toString())); } @Override