Here is the reworked query for posterity: def getComments() { List comments List results
if (this.comments.isEmpty()) { return this.comments } PersistenceManager pm = PMF.get().getPersistenceManager() try { javax.jdo.Query q = pm.newQuery("select from " + Comment.class.getName() + " where host == :host") q.setOrdering("datetime desc"); q.setRange(0, 5); results = q.execute(this.key); Cursor cursor = JDOCursorHelper.getCursor(results); if(cursor != null){ this.cursorString = cursor.toWebSafeString(); } comments = pm.detachCopyAll((List) results) comments.size(); return comments } finally { pm.close() } } Thanks again! On Mon, Mar 8, 2010 at 12:45 PM, atomi <at...@verizon.net> wrote: > Nevermind, I think I got this. Thanks all. > > > On Mon, Mar 8, 2010 at 12:41 PM, atomi <at...@verizon.net> wrote: > >> Sorry to have to ask, But can you hint as to how I should rewrite this >> query so as to have cursors working? >> >> >> On Mon, Mar 8, 2010 at 12:40 PM, atomi <at...@verizon.net> wrote: >> >>> Thank you John, I wasn't clear IN was contains() as well. >>> >>> >>> On Mon, Mar 8, 2010 at 12:36 PM, John Patterson >>> <jdpatter...@gmail.com>wrote: >>> >>>> Cursors are not supported for queries that use IN (contains) because >>>> under the covers they are broken into multiple queries and merged together. >>>> >>>> >>>> http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Query_Cursors >>>> >>>> >>>> On 9 Mar 2010, at 03:21, atomi wrote: >>>> >>>> I'm trying to get cursors working with a result set but the >>>>> JDOCursorHelper.getCursor() method returns null for every query result >>>>> that >>>>> is greater than 1 >>>>> here is my entity method >>>>> Item entity: >>>>> >>>>> @Element(dependent = "true") >>>>> @Persistent(defaultFetchGroup="true",loadFetchGroup="true") >>>>> List<String> comments = new ArrayList<String>(); >>>>> >>>>> def getComments() { >>>>> List comments >>>>> List results >>>>> >>>>> if (this.comments.isEmpty()) { >>>>> return this.comments >>>>> } >>>>> >>>>> PersistenceManager pm = >>>>> PMF.get().getPersistenceManager() >>>>> try { >>>>> javax.jdo.Query q = pm.newQuery("select from " + >>>>> Comment.class.getName() + >>>>> " where :keys.contains(key)") >>>>> q.setOrdering("datetime desc"); >>>>> q.setRange(0, 5); >>>>> results = q.execute(this.comments); >>>>> >>>>> Cursor cursor = >>>>> JDOCursorHelper.getCursor(results); >>>>> if(cursor != null){ >>>>> this.cursorString = >>>>> cursor.toWebSafeString(); >>>>> } >>>>> >>>>> comments = pm.detachCopyAll((List) results) >>>>> comments.size(); >>>>> >>>>> return comments >>>>> } finally { >>>>> pm.close() >>>>> } >>>>> } >>>>> >>>>> Can someone tell me why? >>>>> >>>>> -- >>>>> 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<google-appengine-java%2bunsubscr...@googlegroups.com> >>>>> . >>>>> For more options, visit this group at >>>>> http://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<google-appengine-java%2bunsubscr...@googlegroups.com> >>>> . >>>> For more options, visit this group at >>>> http://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.