2014-05-20 87 views
0

我正在使用objectify與GAE端點內的數據存儲進行交互。爲了節省帶寬,我試圖只返回一些實體的相關字段。在客戶端上,我嘗試使用setFields()方法嘗試,但它似乎只是在客戶端而不是在服務器上進行過濾。響應大小保持不變。物化/ GAE端點的部分響應?

有沒有什麼辦法只使用端點的客觀化檢索或發送特定的字段?

回答

0

對數據存儲區的查詢返回完整的實體及其所有屬性(「字段」)。如果您只想返回某些字段,則需要以編程方式構建響應。查詢,拖動所需的屬性,返回。

如果您發現自己經常構建實體的子集,則可能需要重新考慮每個模型中的屬性。換句話說,考慮添加一些瘦外型,只有流行的屬性。

0

您可以使用投影查詢來僅爲您的實體提取屬性的子集。

https://developers.google.com/appengine/docs/java/datastore/projectionqueries

我不認爲物化支持投影查詢,所以你可能需要使用一個低級別的數據存儲API。

另一種方法是將實體分成兩部分。這可能是要走的路,特別是如果只有一個部分包含經常更新的屬性(除了節省帶寬外,您還可以節省寫入成本)。