Thank you Ikai On Fri, Apr 30, 2010 at 4:29 AM, Ikai L (Google) <ika...@google.com> wrote:
> You'll have to do another query since we don't "peek ahead" to see if > you're at the end of the query result or not. You can optimize this, > however, by doing a keys only query so you don't have to fetch the entities: > > > http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html#Queries_on_Keys > > On Wed, Apr 21, 2010 at 4:10 AM, Chau Huynh <cmhu...@gmail.com> wrote: > >> Hello app engine team, >> >> I'd like to have a search form, which allows user to search next if more >> result available by using a Cursor. >> My issue is, in the last chunk, I am not able to detect if it's. >> Therefore, I will need to execute one additional query to test if more >> data. >> Can you please advise if other approach, without using the 2nd query. >> Thanks. >> >> By document, CursorHelper.getCursor(List<?>) will return a Cursor which >> points to the last element in the list. >> The code is below (correct according to doc) >> >> import com.google.appengine.api.datastore.Cursor; >> >> EntityManager em = ... >> Query query = em.createQuery(queryString); >> query.setMaxResults(20); >> em.getTransaction().begin(); >> List<TestEntity> testEntities = query.getResultList(); >> Cursor cursor = JPACursorHelper.getCursor(testEntities); >> em.getTransaction().rollback(); >> >> Then I will need to invoke one more call later, to check a null cursor >> returned indicates no more data available >> query.setMaxResults(1); >> query.setHint(JPACursorHelper.CURSOR_HINT, cursor); >> em.getTransaction().begin(); >> List<TestEntity> testEntities = query.getResultList(); >> Cursor cursor = JPACursorHelper.getCursor(testEntities); >> em.getTransaction().rollback(); >> >> By curiosity (please correct me if I'm wrong), I looked into >> org.datanucleus.store.appengine.query >> and found that StreamingQueryResult returned by DatastoreQuery, >> which was in fact constructed from >> com.google.appengine.api.datastore.QueryResultList. >> The document say return a cursor that points to the result immediately >> after the last one in this list. >> >> http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/QueryResultList.html#getCursor()<http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/QueryResultList.html#getCursor%28%29> >> >> So I wonder if CursorHelper.getCursor(List<?>) can have something similar? >> >> Thank you. >> >> -- >> 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. >> > > > > -- > Ikai Lan > Developer Relations, Google App Engine > Twitter: http://twitter.com/ikai > Delicious: http://delicious.com/ikailan > > ---------------- > Google App Engine links: > Blog: http://googleappengine.blogspot.com > Twitter: http://twitter.com/app_engine > Reddit: http://www.reddit.com/r/appengine > > -- > 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.