views:

306

answers:

1

Any body know how to use Datastore Cursors with JPA?

+1  A: 

Can you try this (adapted from the JDO sample):

List<Employee> results = (List<Employee>) query.execute();
// Use the first 20 results...

Cursor cursor = JPACursorHelper.getCursor(results);
String cursorString = cursor.toWebSafeString();
// Store the cursorString...

// ...

// Query query = the same query that produced the cursor
// String cursorString = the string from storage
Cursor cursor = Cursor.fromWebSafeString(cursorString);
query.setHint(JPACursorHelper.CURSOR_HINT, cursor);
query.setFirstResult(0);
query.setMaxResults(20);

List<Employee> results = (List<Employee>) query.execute();
// Use the next 20 results...
Pascal Thivent
This does not seem correct. The Query class you're using here has a setRange() method because it's a javax.jdo.Query. The Query class that is used in JPA is javax.persistence.Query and does not have a setRange() method.
Linc
@Linc You're right. Fixing that...
Pascal Thivent