我必须使用冬眠设计一个用于分页的查询(以及排序)。
我已经使用如下所示的条件查询进行了设计,并且效果也不错。
//normal criteria query
Criteria crit = session.createCriteria(User.class);
if(sortBy == null || sortBy.isEmpty()){
crit.addOrder(Order.asc("userId"));
}else{
if("asc".equals(sortOrder)){
crit.addOrder(Order.asc(sortBy));
}else if("desc".equals(sortOrder)){
crit.addOrder(Order.desc(sortBy));
}else{
crit.addOrder(Order.asc(sortBy));
}
}
crit.setFirstResult((pageNo - 1) * pageSize );
crit.setMaxResults(pageSize);
crit.list()
但是我从业务部门收到的实际查询非常复杂,如下所示-
select table1.column1,table1.column2,table1.column3,table2.column1,table2.column2,table3.column1
from table1,table2,table3
where table1.column1 = table2.column2
and table2.column1=table3.column2
我的问题是:
对于上述查询,我应该如何使用paginated query
来写criteria
?
我需要使用criteria
,因为它为使用-setFirstResult and setMaxResults
的分页提供了支持
请提供任何指导?