2014-05-20 88 views
0

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

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

回答

0

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

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

0

您可以使用投影查询来仅为您的实体提取属性的子集。

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

我不认为物化支持投影查询,所以你可能需要使用一个低级别的数据存储API。

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