Does anyone fancy exercising their little grey cells on this fine Monday? I have an entity with relevant fields declared as:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true") public class Thing implements Serializable { private static final long serialVersionUID = 1L; @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true") private String sEncodedKey; @Persistent @Extension(vendorName="datanucleus", key="gae.pk-id", value="true") private Long loID; @Persistent private Date dtCreated; } I want to display pages of my persistent entity to the user, which each page having, say, 20 items displayed. I want to use the class JDOCursorHelper (and stick with JDO if possible). The GAE/J documentation shows me how I can paginate forwards: · Query the first 21 entities and store in an ArrayList<Thing>. · If 21 are returned, set a "there are more entities" flag and discard the 21st entity from the list, otherwise reset the flag. · Show the 20 entities. · Store the cursor as a web-safe string. · If the user hits "Next" (enabled if the flag is set) then: · retrieve the cursor from the web-safe string. · get the next 21 entities · etc. The fun starts if I want to allow the user to paginate the previous pages. One method that I can think of stores the web-safe string of each cursor in a list kept in the user's session object. As "Next" is hit, the cursor just generated can be pushed onto the list. To traverse backwards, I pop (delete) the latest cursor string from the session's list and then use the previous one (now the latest) to produce the previous page's items. Can anyone think of a smarter way to paginate backwards without storing a list of web-safe cursor strings in a user's session? (I could generate an additional persistent field which holds the concatenated string values [dtCreated to milliseconds using Calendar] + "|" + sEncodedKey but the GAE/J article for this says that this way is no longer recommended.) Regards, Ian -- 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-java@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.