Render NEGATING_SIMPLE_PROPERTY as IS NOT NULL when argument value is null.
When a query method uses NEGATING_SIMPLE_PROPERTY and the argument is null, the generated query now uses `IS NOT NULL` instead of `<>`. This ensures consistent behavior when handling null values across queries. Closes: #3675 Original Pull Request: #3681
This commit is contained in:
committed by
Christoph Strobl
parent
6255a0cd7e
commit
186d9f550f
@@ -56,6 +56,7 @@ import org.springframework.util.Assert;
|
||||
* @author Moritz Becker
|
||||
* @author Andrey Kovalev
|
||||
* @author Greg Turnquist
|
||||
* @author Jinmyeong Kim
|
||||
*/
|
||||
public class JpaQueryCreator extends AbstractQueryCreator<CriteriaQuery<? extends Object>, Predicate> {
|
||||
|
||||
@@ -311,8 +312,10 @@ public class JpaQueryCreator extends AbstractQueryCreator<CriteriaQuery<? extend
|
||||
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<Object> negatedExpression = provider.next(part);
|
||||
Expression<Object> negatedPath = getTypedPath(root, part);
|
||||
return negatedExpression.isIsNullParameter() ? negatedPath.isNotNull()
|
||||
: builder.notEqual(upperIfIgnoreCase(negatedPath), upperIfIgnoreCase(negatedExpression.getExpression()));
|
||||
case IS_EMPTY:
|
||||
case IS_NOT_EMPTY:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user