Correct me if I'm wrong, but if you have the following code, wouldn't you lose the transactionality applied via Interceptor since the query is actually executed outside of the target class?
Code:
Page findStuffAsPage(int pageSize, int pageNum){
return new Page(getHibernateTemplate().createQuery(getSession(), "from Cat c"), pageSize, pageNum);
}
Page Class from http://blog.hibernate.org/cgi-bin/bl.../14#pagination
Code:
public class Page {
private List results;
private int pageSize;
private int page;
public Page(Query query, int page, int pageSize) {
this.page = page;
this.pageSize = pageSize;
results = query.setFirstResult(page * pageSize)
.setMaxResults(pageSize+1)
.list();
}
public boolean isNextPage() {
return results.size() > pageSize;
}
public boolean isPreviousPage() {
return page > 0;
}
public List getList() {
return isNextPage() ?
results.subList(0, pageSize-1) :
results;
}
}
R