Hi,
Cursor provides a point so that query will execute after that.
I don't think you can achieve the same thing with query.setFirstResult()
Below is code I ran based on consulting JDO example and JPA javadocs. Hope
this helps
EntityManager em = ...
Query query = em.createQuery(queryString);
query.setMaxResults(pageSize);
ListUser users = query.getResultList();
if (users.size() == pageSize) {
Cursor cursor = JPACursorHelper.getCursor(users);
if (cursor != null) {
String cursorString = cursor.toWebSafeString();
// store cursorString for later use
}
}
Query query = em.createQuery(queryString); // same query above
query.setMaxResults(pageSize);
Cursor cursor = Cursor.fromWebSafeString(cursorString);
if (cursor != null) {
query.setHint(JPACursorHelper.CURSOR_HINT, cursor);
}
ListUser users = query.getResultList();
...
On Thu, May 6, 2010 at 5:27 AM, fvisticot fvisti...@gmail.com wrote:
I do not see any documentation regarding cursor support with JPA.
Is the following code the correct way to use cursors ?
In this sample code, i will retrieve users from 300 to 320
(query.setMaxResults(20); query.setFirstResult(300);)
The test is OK with the Local Eclipse GAE plugin
@Test
public void getUsersCursorTest() {
EntityManagerFactory emf = null;
EntityManager em = null;
emf = AppEntityManagerFactory.get();
try {
em = emf.createEntityManager();
Query query = em.createNamedQuery(User.findAll);
query.setMaxResults(20);
query.setFirstResult(300);
ListUser users = query.getResultList();
_logger.info(UsersWithMax: + users.size());
for (User user: users) {
_logger.info(User: + user);
}
} finally {
if (em != null)
em.close();
}
}
--
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.comgoogle-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.