diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/QueryMapper.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/QueryMapper.java index 33a3a4fa..d674417d 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/QueryMapper.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/QueryMapper.java @@ -494,13 +494,15 @@ class QueryMapper { if (comparator == Comparator.IS_TRUE) { - Expression bind = bindBoolean(column, parameterSource, true); + Expression bind = bindBoolean(column, parameterSource, + mappedValue instanceof Boolean ? (Boolean) mappedValue : true); return column.isEqualTo(bind); } if (comparator == Comparator.IS_FALSE) { - Expression bind = bindBoolean(column, parameterSource, false); + Expression bind = bindBoolean(column, parameterSource, + mappedValue instanceof Boolean ? (Boolean) mappedValue : false); return column.isEqualTo(bind); } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/query/Criteria.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/query/Criteria.java index 59934bce..a4485b86 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/query/Criteria.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/query/Criteria.java @@ -849,7 +849,7 @@ public class Criteria implements CriteriaDefinition { */ @Override public Criteria isTrue() { - return createCriteria(Comparator.IS_TRUE, null); + return createCriteria(Comparator.IS_TRUE, true); } /* @@ -858,7 +858,7 @@ public class Criteria implements CriteriaDefinition { */ @Override public Criteria isFalse() { - return createCriteria(Comparator.IS_FALSE, null); + return createCriteria(Comparator.IS_FALSE, false); } protected Criteria createCriteria(Comparator comparator, @Nullable Object value) { diff --git a/spring-data-relational/src/test/java/org/springframework/data/relational/core/query/CriteriaUnitTests.java b/spring-data-relational/src/test/java/org/springframework/data/relational/core/query/CriteriaUnitTests.java index 6529ad76..02439f85 100644 --- a/spring-data-relational/src/test/java/org/springframework/data/relational/core/query/CriteriaUnitTests.java +++ b/spring-data-relational/src/test/java/org/springframework/data/relational/core/query/CriteriaUnitTests.java @@ -285,6 +285,7 @@ public class CriteriaUnitTests { assertThat(criteria.getColumn()).isEqualTo(SqlIdentifier.unquoted("foo")); assertThat(criteria.getComparator()).isEqualTo(CriteriaDefinition.Comparator.IS_TRUE); + assertThat(criteria.getValue()).isEqualTo(true); } @Test // DATAJDBC-513 @@ -294,5 +295,6 @@ public class CriteriaUnitTests { assertThat(criteria.getColumn()).isEqualTo(SqlIdentifier.unquoted("foo")); assertThat(criteria.getComparator()).isEqualTo(CriteriaDefinition.Comparator.IS_FALSE); + assertThat(criteria.getValue()).isEqualTo(false); } }