【发布时间】:2013-04-30 18:17:50
【问题描述】:
我有一个典型的 Person-Address 实体关系。在查询数据存储中的 Person 之后,我会查询 Person 以获取地址键。密钥(即addrKey,见下文)始终返回为空。但是我查看数据存储区,我看到了 Person 和 Address 实体,以及它们的键。很明显,Key addrKey = (Key) person.getProperty("address") 这条线并没有做我认为应该做的事情。任何想法如何解决这个问题?
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Map<Key, Entity> entities = datastore.get(keys);
List<Person> result = new ArrayList<Person>();
Iterator<Entry<Key, Entity>> it = entities.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Key, Entity> ent = it.next();
final Entity person = ent.getValue();
Key key = person.getKey();
name = (Long) person.getProperty("name");
Address address = getAddress(datastore, person);
...
}
private Address getAddress(DatastoreService datastore, Entity person) {
Key addrKey = (Key) person.getProperty("address");
try {
Entity d = datastore.get(addrKey);
String street = (String) d.getProperty("street");
…
}
【问题讨论】:
标签: google-app-engine google-cloud-datastore