From 6c386e97b331d917d8c6728f984c8045b0d21e87 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 21 Jan 2025 10:24:57 +0100 Subject: [PATCH] Document restrictions for zero Limit PageRequest translation. Closes #3102 --- src/main/java/org/springframework/data/domain/Limit.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/domain/Limit.java b/src/main/java/org/springframework/data/domain/Limit.java index bddcc6b35..ad4418696 100644 --- a/src/main/java/org/springframework/data/domain/Limit.java +++ b/src/main/java/org/springframework/data/domain/Limit.java @@ -28,7 +28,11 @@ import org.springframework.lang.Nullable; * over using {@literal null} or {@link java.util.Optional#empty()} to indicate the absence of an actual {@link Limit}. *

* {@link Limit} itself does not make assumptions about the actual {@link #max()} value sign. This means that a negative - * value may be valid within a defined context. + * value may be valid within a defined context. A zero limit can be useful in cases where the result is not needed but + * the underlying activity to compute results might be required. + *

+ * Note that using a zero Limit with repository query methods returning {@link Page} is rejected because of a zero-page + * size. * * @author Christoph Strobl * @author Oliver Drotbohm @@ -104,8 +108,7 @@ public sealed interface Limit permits Limited, Unlimited { return false; } - return this.isUnlimited() && that.isUnlimited() - || max() == that.max(); + return this.isUnlimited() && that.isUnlimited() || max() == that.max(); } @Override