public CollectionResponse<Eateries> list(@Nullable @Named("cursor") String cursor, @Nullable @Named("limit") Integer limit) {
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
Query<Eateries> query = ofy().load().type(Eateries.class).limit(limit);
以上是来自端点api的代码片段以获取列表。
我试图将限制设置为null,以便使用以下内容检索DataStore服务器上的所有条目:
List<Eateries> eateries = myApiService.list().set("limit", null).execute().getItems();
然而,它继续将它限制为DEFAULT_LIST_LIMIT设置为的值。
有人可以向我解释下面这行是做什么的:
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
答案 0 :(得分:0)
limit = limit == null ? DEFAULT_LIST_LIMIT : limit;
如果limit为null,则该行设置为DEFAULT_LIST_LIMIT的限制。
我尝试将DEFAULT_LIST_LIMIT设置为0,这样限制就会为0,这在使用时实际上意味着没有限制:
ofy().load().type(Eateries.class).limit(limit);
然而,它仍然会返回错误,说明块大小必须大于0。
所以我或多或少创造了我自己的ApiMethod,它完全忽略了完全限制设置。
答案 1 :(得分:0)
这可以做你想要的:
public CollectionResponse<Eateries> list(@Nullable @Named("cursor") String cursor, @Nullable @Named("limit") Integer limit) {
Query<Eateries> query = ofy().load().type(Eateries.class);
if (limit != null) {
query.limit(limit);
}