Browse Source

DATACMNS-1443 - Fixed Querydsl web data binding for blank strings.

We now use StringUtils.hasLength(…) in the check whether to drop request elements from binding instead of ….hasText(…) as the latter drops blank strings so that's impossible to search for properties that contain a blank.
pull/351/head
Oliver Drotbohm 7 years ago
parent
commit
296d105e19
  1. 2
      src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java
  2. 17
      src/test/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilderUnitTests.java

2
src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java

@ -216,6 +216,6 @@ public class QuerydslPredicateBuilder { @@ -216,6 +216,6 @@ public class QuerydslPredicateBuilder {
* @return
*/
private static boolean isSingleElementCollectionWithoutText(List<String> source) {
return source.size() == 1 && !StringUtils.hasText(source.get(0));
return source.size() == 1 && !StringUtils.hasLength(source.get(0));
}
}

17
src/test/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilderUnitTests.java

@ -205,4 +205,21 @@ public class QuerydslPredicateBuilderUnitTests { @@ -205,4 +205,21 @@ public class QuerydslPredicateBuilderUnitTests {
assertThat(builder.getPredicate(USER_TYPE, values, bindings))//
.isEqualTo($.user.as(QSpecialUser.class).specialProperty.contains("VALUE"));
}
@Test // DATACMNS-1443
public void doesNotDropValuesContainingABlank() {
values.add("firstname", " ");
assertThat(builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS)) //
.isEqualTo(QUser.user.firstname.eq(" "));
}
@Test // DATACMNS-1443
public void dropsValuesContainingAnEmptyString() {
values.add("firstname", "");
assertThat(builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS)).isNull();
}
}

Loading…
Cancel
Save