第一步:實作分頁工具類package com.zqwm.fly.types;
import lombok.Data;
import java.util.List;
@Data
public class PageModel
{
private List datas;
private int rowCount;
private int pageSize=20;
private int pageNo=1;
private int skip=0;
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;
}