springboot jpa mongodb
public Page<Recorded> getRecordeds(Integer page, Integer size, Recorded recorded) {
if (page<1){
page=1;
}
Sort sort = new Sort(Sort.Direction.DESC,"createTime");
Pageable pageable = new PageRequest(page-1,size,sort);
Query query = new Query();
//条件id =XX
Criteria criteria = Criteria.where("callerId").is(recorded.getCallerId());
criteria.and(“status”).is(Recorded.SUCCESS);
if(startTime!=null&&endTime!=null){
criteria.andOperator(
Criteria.where("createTime").gte(startTime),
Criteria.where("createTime").lt(endTime)
);
}
query.addCriteria(criteria);
//mongoTemplate.count计算总数
long total = mongoTemplate.count(query, Recorded.class);
// mongoTemplate.find 查询结果集
List<Recorded> items = mongoTemplate.find(query.with(pageable), Recorded.class);
return new PageImpl(items, pageable, total);
}
分页
package com.tk.portal.utils;
import java.util.List;
/**
* mongoDb分页对象
*/
public class PageResult<T> {
//当前业
private Integer pageNum;
//每页的数量
private Integer pageSize;
//总共的条数
private Long total;
//总共的页数
private Integer pages;
//实体类集合
private List<T> list;
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
public Integer getPages() {
return pages;
}
public void setPages(Integer pages) {
this.pages = pages;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
/**
* MongDb分页公共方法
* @param clazz 实体类的class对象
* @param pageSize 每页的数量
* @param pageNum 当前的页数
* @param query query是啥不知道赶紧去查下,相当于sql语句
* @return
*/
public PageResult<T> pagination(Class<T> clazz, int pageSize, int pageNum, Query query) {
long total = this.mongoTemplate.count(query, clazz);
Integer pages = (int)Math.ceil((double)total / (double)pageSize);
if (pageNum <= 0 || pageNum > pages) {
pageNum = 1;
}
int skip = pageSize * (pageNum - 1);
query.skip(skip).limit(pageSize);
List<T> list = mongoTemplate.find(query, clazz);
PageResult pageResult = new PageResult();
pageResult.setTotal(total);
pageResult.setPages(pages);
pageResult.setPageSize(pageSize);
pageResult.setPageNum(pageNum);
pageResult.setList(list);
return pageResult;
}