0
任何人都可以推薦更好的方法來通過來自GAE HRD數據存儲的多個ID查詢實體嗎?Google App Engine - 推薦使用Id查詢的方法
1.
mgr = getEntityManager();
Query dbQuery = mgr.createQuery("SELECT FROM CustomEntity as CustomEntity WHERE id IN (:ids)");
dbQuery.setParameter("ids", results.getIds());
return (List<CustomEntity>) dbQuery.getResultList();
2.
List<Key> customEntityKeys = new ArrayList<Key>();
for (String id : results.getIds()) {
customEntityKeys.add(KeyFactory.createKey("CustomEntity", id));
}
mgr = getEntityManager();
JPADatastoreBridge jpaBridge = new JPADatastoreBridge();
List<CustomEntity> customEntities = new ArrayList<CustomEntity>();
Map<Key,Entity> customEntityMap = datastore.get(customEntityKeys);
for (Entity customEntityEntity : customEntityMap.values()) {
customEntities.add((CustomEntity) jpaBridge.getJPAFromEntity(customEntityEntity, mgr, CustomEntity.class));
}
return customEntities;
在 「更好的做法」 我的意思是,主要性能明智的。另外,如果有另一種方式,我會很樂意聽到它。 謝謝。
p.s.
使用JPA作爲我的持久性方法。不知道這真的很重要。