我有大约50k实体存储在appengine中。我能够通过GQL管理界面查找单个记录与查询,如:如何在JDO中执行批量Google DataStore键查询查询
SELECT * FROM Pet where __key__ = KEY('Pet','Fido')
,但我有麻烦找出如何通过JDO做的这一批版本。现在,我有这样的:
PersistenceManager pm = ...;
for(Pet pet : pets) {
for(String k : getAllAliases(pet)) {
keys.add(KeyFactory.createKeyString(Pet.class.getSimpleName(), k));
}
}
Query q = pm.newQuery("select from " + Pet.class.getName() + " where id == :keys");
List<Pet> petlist = (List<Pet>) q.execute(keys);
不过,虽然“菲多”的情况下GQL作品,当我使用的Java + JDO代码它没有返回。我究竟做错了什么?
很高兴知道。如果查询无效,我期待得到某种难以忽略的错误通知,所以我很失望。 – TheDon 2010-03-18 12:20:08