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").lte(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);
}
springboot jpa mongodb 多條件分頁查詢