Hi all, I just added support to the Isis core and applib for Paged datastore queries.
These extensions don't change any existing behaviour, but do expose a new query type to the user space: QueryFindAllPaged A simple usage example: public List<SimpleClass> someSimpleClasses(final long startIndex, final long rowCount) { Query<SimpleClass> query = new QueryFindAllPaged<SimpleClass>(SimpleClass.class, startIndex, rowCount); return allMatches(query); } Inside PersistenceSession, "QueryFindAllPaged" is mapped onto "PersistenceQueryFindPaged", which is available to the data stores. The SQL-OS has a simple implementation that adds "LIMIT <startIndex>, <rowCount>" to the end of the SQL statement. This will have to be edited for each database engine: I belive mysql and postgresql have an incompatible syntax... but I believe it should be possible to easily define a way to specify the custom string in the properties file. There is a simple test in SqlDomainObjectRepository that just checks that the expected number of instances are returned. It works against HSQLDB. May you find this extension useful!