Skip to content

Commit 5352fe3

Browse files
mp911deschauder
authored andcommitted
Associate value with isTrue/isFalse criteria operators.
We now associate a boolean value with both operators as those operators are rendered using equals comparison in the actual SQL text. Orginal pull request #1188
1 parent c8eafe7 commit 5352fe3

File tree

3 files changed

+8
-4
lines changed
  • spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query
  • spring-data-relational/src

3 files changed

+8
-4
lines changed

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/QueryMapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,13 +494,15 @@ private Condition createCondition(Column column, @Nullable Object mappedValue, S
494494

495495
if (comparator == Comparator.IS_TRUE) {
496496

497-
Expression bind = bindBoolean(column, parameterSource, true);
497+
Expression bind = bindBoolean(column, parameterSource,
498+
mappedValue instanceof Boolean ? (Boolean) mappedValue : true);
498499
return column.isEqualTo(bind);
499500
}
500501

501502
if (comparator == Comparator.IS_FALSE) {
502503

503-
Expression bind = bindBoolean(column, parameterSource, false);
504+
Expression bind = bindBoolean(column, parameterSource,
505+
mappedValue instanceof Boolean ? (Boolean) mappedValue : false);
504506
return column.isEqualTo(bind);
505507
}
506508

spring-data-relational/src/main/java/org/springframework/data/relational/core/query/Criteria.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ public Criteria isNotNull() {
849849
*/
850850
@Override
851851
public Criteria isTrue() {
852-
return createCriteria(Comparator.IS_TRUE, null);
852+
return createCriteria(Comparator.IS_TRUE, true);
853853
}
854854

855855
/*
@@ -858,7 +858,7 @@ public Criteria isTrue() {
858858
*/
859859
@Override
860860
public Criteria isFalse() {
861-
return createCriteria(Comparator.IS_FALSE, null);
861+
return createCriteria(Comparator.IS_FALSE, false);
862862
}
863863

864864
protected Criteria createCriteria(Comparator comparator, @Nullable Object value) {

spring-data-relational/src/test/java/org/springframework/data/relational/core/query/CriteriaUnitTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ public void shouldBuildIsTrueCriteria() {
285285

286286
assertThat(criteria.getColumn()).isEqualTo(SqlIdentifier.unquoted("foo"));
287287
assertThat(criteria.getComparator()).isEqualTo(CriteriaDefinition.Comparator.IS_TRUE);
288+
assertThat(criteria.getValue()).isEqualTo(true);
288289
}
289290

290291
@Test // DATAJDBC-513
@@ -294,5 +295,6 @@ public void shouldBuildIsFalseCriteria() {
294295

295296
assertThat(criteria.getColumn()).isEqualTo(SqlIdentifier.unquoted("foo"));
296297
assertThat(criteria.getComparator()).isEqualTo(CriteriaDefinition.Comparator.IS_FALSE);
298+
assertThat(criteria.getValue()).isEqualTo(false);
297299
}
298300
}

0 commit comments

Comments
 (0)