Hi, I was having trouble as well with retrieving data quickly and not sure of the best approach. I currently have my JDO object (JdoEvent) on the client (and was advised recently that this may not be the best place to put it) and was retrieving about a 1000 objects and this was taking longer than I'd like. My approach follows and I welcome any criticisms of it, thank you
public List<JdoEvent> getEvents() { return get(JdoEvent.class, "order by date desc"); } private <T> List<T> get(Class<T> cls, String filterClause) { PersistenceManager pm = PMF.get().getPersistenceManager(); List<T> result = null; try { String q = "select from " + cls.getName() + " " + filterClause; result = new ArrayList<T>((List<T>) pm.newQuery(q).execute()); } finally { pm.close(); } return result; } On Feb 23, 3:35 am, John Patterson <jdpatter...@gmail.com> wrote: > You can set the chunk size to 100 or use one of the non iterator query > methods. By default only 20 results are loaded at a time so for 100 > results the iterator does 5 queries. > > On 22 Feb 2010, at 02:23, Ftaylor wrote: > > > Is this the fastest way to load all of the Elements of a given type > > from the DataStore? > > > @SuppressWarnings("unchecked") > > public static final List<Page> loadAllPagesFromDataStore() { > > List<Page> pages = new ArrayList<Page>(); > > PersistenceManager pm = PMF.get().getPersistenceManager(); > > Query query = null; > > try { > > query = pm.newQuery(Page.class); > > List<Page> results = (List<Page>)query.execute(); > > if(results.iterator().hasNext()) { > > Iterator<Page> it = results.iterator(); > > while(it.hasNext()) > > pages.add(pm.detachCopy(it.next())); > > } > > } finally { > > query.closeAll(); > > pm.close(); > > } > > return pages; > > } > > > I ask because the datastore is meant to be very fast at reading huge > > amounts of data, but slow at writing huge amounts of data, yet this > > query is quite slow for only 100 elements. > > > Thanks, > > > Finbarr > > > -- > > You received this message because you are subscribed to the Google > > Groups "Google App Engine for Java" group. > > To post to this group, send email to google-appengine-java@googlegroups.com > > . > > To unsubscribe from this group, send email to > > google-appengine-java+unsubscr...@googlegroups.com > > . > > For more options, visit this group > > athttp://groups.google.com/group/google-appengine-java?hl=en > > . -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.