我使用objectify从GAE端点内与数据存储区进行交互。为了节省带宽,我试图仅返回某些实体的相关字段。在从客户端回收的端点上,我尝试使用setFields()
方法,但似乎它只是在客户端上而不是在服务器上进行过滤。响应大小保持不变。
有没有办法只使用端点的客观化来检索或发送特定字段?
答案 0 :(得分:0)
对数据存储区的查询返回完整实体及其所有属性("字段")。如果您只想返回某些字段,则需要以编程方式构建响应。查询,拉出所需的属性,返回。
如果您发现自己不断构建实体子集,则可能需要重新考虑每个模型中的属性。换句话说,考虑添加一些更瘦的模型,只有流行的属性。
答案 1 :(得分:0)
您可以使用投影查询仅为实体提取属性的一部分。
https://developers.google.com/appengine/docs/java/datastore/projectionqueries
我不认为Objectify支持投影查询,因此您可能必须使用低级数据存储API。
另一种方法是将您的实体分成两部分。这可能是要走的路,特别是如果只有一个部件包含经常更新的属性(除了节省带宽之外,您将节省写入成本)。