thanks; what delete do you use? It looked like deletePersistentAll() accepted only entities (rather than key values)
On Tue, Aug 2, 2011 at 9:46 AM, Stephen Johnson <onepagewo...@gmail.com>wrote: > Change your query to something like this: > > Query query = pm.newQuery("select ek from " + UploadedContent.class > .getName()); > > Where "ek" is the entity key name you use in you JDO class. For example, > mine is defined like the following: > > @PrimaryKey > > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > > @Extension(vendorName="datanucleus", key="gae.encoded-pk", value= > "true") > > private String ek; > > Then, just query for the keys and do a batch delete on the keys. Right now > you're pulling in all the entity data and then deleting the entities which > is unnecessary and will slow you do a lot. > > Stephen > CortexConnect (cortexconnect.appspot.com) > > On Tue, Aug 2, 2011 at 12:17 AM, Carter <jcmas...@gmail.com> wrote: > >> Is this the most efficient code for bulk delete? >> >> Is there a "SELECT __key__" technique that's faster? >> >> This currently deletes 100 at a time, but it's slow. >> >> >> public long deleteBefore(Date d, long maxRecords) >> throws DaoException { >> >> PersistenceManager pm = pmf.getPersistenceManager(); >> Query query = pm.newQuery(UploadedContent.class); >> query.setFilter("dateCreated < dateCreatedParam"); >> query.declareParameters("Date dateCreatedParam"); >> query.declareImports("import java.util.Date;"); >> if (maxRecords >= 0) { >> query.setRange(0, maxRecords); >> } >> >> List<UploadedContent> entities = new >> ArrayList<UploadedContent>(); >> try { >> entities = (List<UploadedContent>) >> query.execute(d); >> pm.deletePersistentAll(entities); >> } catch (Exception e) { >> log.log(Level.SEVERE, e.getMessage(), e); >> throw new DaoException(e); >> } finally { >> query.closeAll(); >> pm.close(); >> } >> return entities.size(); >> } >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" group. >> To post to this group, send email to google-appengine@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/google-appengine?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.