第一步:实现分页工具类package com.zqwm.fly.types;
import lombok.Data;
import java.util.List;
/**
* 分页
* @author zhengcy
*
* @param
*/
@Data
public class PageModel
{
/**结果集*/
private List datas;
/**查询记录数**/
private int rowCount;
/**每页多少条数据**/
private int pageSize=20;
/**第几页**/
private int pageNo=1;
/**跳过几条数**/
private int skip=0;
/**
* 总页数
* @return
*/
public int TotalPages() {return(rowCount+pageSize-1)/pageSize;}
}
第二步:实现分页//分页 排序 多条件过滤
public PageModel findByPage(PageModel page,Integer pageIndex, Integer pageSize, Map params, String cellection)
{
//创建排序模板Sort
Sort sort = new Sort(Sort.Direction.DESC, "id");
//创建分页模板Pageable
Pageable pageable = new PageRequest((pageIndex-1)*pageSize, pageSize, sort);
//创建查询条件对象
Query query = new Query();
if ((params != null) && (!(params.isEmpty())))
{
for (String key : params.keySet()) {
query.addCriteria(new Criteria(key).is(params.get(key)));
}
}
//mongoTemplate.count计算总数
long total = mongoTemplate.count(query,getClz(),cellection);
page.setRowCount((int)total);
// mongoTemplate.find 查询结果集
List items = (List) mongoTemplate.find(query.with(pageable),getClz(),cellection);
page.setPageNo(pageIndex);
page.setPageSize(pageSize);
page.setDatas(items);
return page;
}