У меня в appengine хранится около 50 тысяч объектов. Я могу просмотреть отдельную запись через интерфейс администратора 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. Что я делаю не так?