Adding the Limit parameter to the method declaration limits the number of results. However, this max currently cannot be 0 as when the query is executed an exception is thrown.
List<Foo> r = findByName(String name, Limit.of(0));
// org.springframework.dao.InvalidDataAccessApiUsageException: Page size must not be less than one
This behaviour is not documented anywhere near the Limit class. There's a vague explanation which does not explain things:
My question: should the documentation of Limit be updated to reflect this, or we should indeed allow the limit to be zero, which should return an empty result list. This'd be consistent with how usual SQL statements are expected to behave,
This is intended, however, it isn't explicitly documented as such. Negative limits are useful in stores such as Redis where -4 means give me the last four elements from a list.
Adding the
Limit
parameter to the method declaration limits the number of results. However, thismax
currently cannot be 0 as when the query is executed an exception is thrown.This behaviour is not documented anywhere near the
Limit
class. There's a vague explanation which does not explain things:https://github.com/spring-projects/spring-data-commons/blob/0a603f2e57dc253a268d665401238b7ef2fb2a40/src/main/java/org/springframework/data/domain/Limit.java#L30-L37
Instead,
Pageable
andPageRequest
mention the "size" must be non zero:https://github.com/spring-projects/spring-data-commons/blob/0a603f2e57dc253a268d665401238b7ef2fb2a40/src/main/java/org/springframework/data/domain/Pageable.java#L54-L58
My question: should the documentation of
Limit
be updated to reflect this, or we should indeed allow the limit to be zero, which should return an empty result list. This'd be consistent with how usual SQL statements are expected to behave,