【发布时间】:2014-06-25 08:40:29
【问题描述】:
我正在设计一个应用程序,希望在其中使用投影查询从 App Engine 数据存储区检索实体对象,以节省延迟和成本。我对此有两个问题:
1) 如果在返回的实体上调用 Entity.getProperty(String propertyName) 方法,其中 propertyName 不对应于 Projection 选择的属性之一,返回值为 null 还是 Java 会抛出异常?实体文档没有说明如果 propertyName 不存在会发生什么。推论,未选择的属性是否不再存在于返回的实体中,或者它们只是没有分配或为它们分配空值?
2) 返回的截断实体的密钥是否与数据存储中实际存在的原始完整实体的密钥相同?据我了解,密钥是实体的种类、名称/id 属性和祖先路径的散列。 Name/id 似乎也是一个属性,所以如果不选择它,返回的 Entity 的 Key 是否与实际 Entity 的 Key 不同?
一旦我启动并运行,这些问题似乎很容易通过一些测试来回答,但我是 App Engine 的新手,仍然只是设计我的项目,所以我不会处于一个位置这样做了一段时间。希望有人已经知道答案。
【问题讨论】:
标签: java google-app-engine google-cloud-datastore