客观化/ GAE端点的部分响应?

时间:2014-05-20 11:42:34

标签: google-app-engine google-cloud-endpoints objectify

我使用objectify从GAE端点内与数据存储区进行交互。为了节省带宽,我试图仅返回某些实体的相关字段。在从客户端回收的端点上,我尝试使用setFields()方法,但似乎它只是在客户端上而不是在服务器上进行过滤。响应大小保持不变。

有没有办法只使用端点的客观化来检索或发送特定字段?

2 个答案:

答案 0 :(得分:0)

对数据存储区的查询返回完整实体及其所有属性("字段")。如果您只想返回某些字段,则需要以编程方式构建响应。查询,拉出所需的属性,返回。

如果您发现自己不断构建实体子集,则可能需要重新考虑每个模型中的属性。换句话说,考虑添加一些更瘦的模型,只有流行的属性。

答案 1 :(得分:0)

您可以使用投影查询仅为实体提取属性的一部分。

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

我不认为Objectify支持投影查询,因此您可能必须使用低级数据存储API。

另一种方法是将您的实体分成两部分。这可能是要走的路,特别是如果只有一个部件包含经常更新的属性(除了节省带宽之外,您将节省写入成本)。