Revise QuerydslPredicateBuilder nullability behavior.
We now no longer return a null Predicate from QuerydslPredicateBuilder.getPredicate(…) if the input values are empty or if the constraints are empty. Instead, we return an empty BooleanBuilder instance to avoid null handling on the calling side. HandlerMethodArgumentsResolvers for QuerydslBindings retain their null/Optional.empty semantics. Closes #2396
This commit is contained in:
@@ -77,8 +77,10 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
}
|
||||
|
||||
@Test // DATACMNS-669, DATACMNS-1168
|
||||
void getPredicateShouldReturnNullWhenPropertiesAreEmpty() {
|
||||
assertThat(builder.getPredicate(ClassTypeInformation.OBJECT, values, DEFAULT_BINDINGS)).isNull();
|
||||
void getPredicateShouldReturnEmptyWhenPropertiesAreEmpty() {
|
||||
assertThat(
|
||||
QuerydslPredicateBuilder.isEmpty(builder.getPredicate(ClassTypeInformation.OBJECT, values, DEFAULT_BINDINGS)))
|
||||
.isTrue();
|
||||
}
|
||||
|
||||
@Test // DATACMNS-669
|
||||
@@ -228,6 +230,6 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
|
||||
values.add("firstname", "");
|
||||
|
||||
assertThat(builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS)).isNull();
|
||||
assertThat(QuerydslPredicateBuilder.isEmpty(builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS))).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user