2016-11-11 40 views
0
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獲取列表的代碼片段。如何使谷歌端點API的限制爲空

我試圖將限制設置爲空,這樣的數據存儲服務器上的所有參賽作品將通過使用下面的檢索:

 List<Eateries> eateries = myApiService.list().set("limit", null).execute().getItems(); 

然而,窗臺保持它限制了任何的DEFAULT_LIST_LIMIT是價值設置。

  1. 如何將限制設置爲空,以便我可以一次性獲取所有條目?
  2. 有人能向我解釋什麼,下面一行是這樣做的:

    limit = limit == null ? DEFAULT_LIST_LIMIT : limit; 
    
+0

我剛剛結束了創建我自己的APIMethod爲編輯此自動生成一個耗費太多的時間。 – Rafiq07

回答

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); 
    } 
0
limit = limit == null ? DEFAULT_LIST_LIMIT : limit; 

事實證明,如果限制爲null,該行設置的限制DEFAULT_LIST_LIMIT的價值。

我試着設置DEFAULT_LIST_LIMIT爲0,這樣在使用時,該限制將被0這實際上意味着沒有限制:

ofy().load().type(Eateries.class).limit(limit); 

但是它仍然有一個錯誤回來說一些關於數據塊大小必須是大於0.

因此,我已經或多或少地創建了自己的ApiMethod,它完全忽略了完全限制的設置。