In your case, given that each item is expensive to extract, it probably makes sense to accept aggregated results and not iterate over directly for each item when removing the call level.
You can provide one method that returns a list similar to this:
List<YourClass> getResults(int offset, int maxResults)
where offset will be the index of the first element you want to start with, and maxresults is the maximum number of elements you want to have in the list. Then you can iterate over the list to display on your page.
The Java Persistence API also follows the same pattern, the query interface provides 3 methods that do the above:
setFirstResult() setMaxResults() List getResultList()
http://download.oracle.com/javaee/5/api/javax/persistence/Query.html
jbx
source share