這裏我使用Datastore API創建,更新&檢索實體。如何使用數據存儲區api對子實體進行排序
我的用例是,必須得到一個父實體的孩子和大孩子實體。
我的實體結構如下:
Company
--> Employee
--> Address (Multiple Address entities).
這裏我有Company
實體鍵,我需要一起配置到員工的所有Address
實體獲取Employee
細節。
例子:
Company --> Aaa
Employee --> John
Address --> California
Address --> Redwood
Employee --> Robert
Address --> New York
Address --> Washington
我需要的結果是:
約翰&的員工實體羅伯特與各
Address
實體一起。員工實體應按名稱排序。
我的查詢如下:
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query().setAncestor(companyKey);
datastore.prepare(query).asList(FetchOptions.Builder.withDefaults());
上面的查詢返回的結果#1規定。
但無法使用此查詢按名稱排序Employee
實體。 當我試圖添加這類條款query.addSort("name", SortDirection.ASCENDING)
它如下拋出一個錯誤:
java.lang.IllegalArgumentException: kind is required for all orders except __key__ ascending
at com.google.appengine.api.datastore.DatastoreApiHelper.translateError(DatastoreApiHelper.java:50)
at com.google.appengine.api.datastore.DatastoreApiHelper$1.convertException(DatastoreApiHelper.java:121)
如何,而在查詢中使用的祖先路徑子實體排序?