Fix handling of null predicate in Specification.not().

When toPredicate() returns null, Specification.not() now returns
builder.disjunction() instead of builder.not(null). This change
ensures proper handling of null predicates in negated specifications.

Closes #3849
Original pull request: #3856

Signed-off-by: SWQXDBA <983110853@qq.com>
This commit is contained in:
SWQXDBA
2025-04-23 20:03:17 +08:00
committed by Mark Paluch
parent 5ebfdb6566
commit dc854df741

View File

@@ -156,7 +156,7 @@ public interface Specification<T> extends Serializable {
return (root, query, builder) -> {
Predicate predicate = spec.toPredicate(root, query, builder);
return predicate != null ? builder.not(predicate) : null;
return predicate != null ? builder.not(predicate) : builder.disjunction();
};
}