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