我在 appengine 中存储了大约 50k 个实体。我可以通过 GQL 管理界面使用如下查询查找单个记录:
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);
但是,尽管“Fido”在 GQL 案例中有效,但当我使用该 Java + JDO 代码时它什么也不返回。我究竟做错了什么?