diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java index 255ac86dc3..28ec8cf317 100644 --- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java +++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/repository/query/JpaQueryCreator.java @@ -56,6 +56,7 @@ * @author Moritz Becker * @author Andrey Kovalev * @author Greg Turnquist + * @author Jinmyeong Kim */ public class JpaQueryCreator extends AbstractQueryCreator, Predicate> { @@ -311,8 +312,10 @@ public Predicate build() { return expression.isIsNullParameter() ? path.isNull() : builder.equal(upperIfIgnoreCase(path), upperIfIgnoreCase(expression.getExpression())); case NEGATING_SIMPLE_PROPERTY: - return builder.notEqual(upperIfIgnoreCase(getTypedPath(root, part)), - upperIfIgnoreCase(provider.next(part).getExpression())); + ParameterMetadata negatedExpression = provider.next(part); + Expression negatedPath = getTypedPath(root, part); + return negatedExpression.isIsNullParameter() ? negatedPath.isNotNull() + : builder.notEqual(upperIfIgnoreCase(negatedPath), upperIfIgnoreCase(negatedExpression.getExpression())); case IS_EMPTY: case IS_NOT_EMPTY: