mongoTemplate

mongoTemplate 多条件分页查询

1.controller

 @PostMapping("/limitfind")
    public LimitBean LimitFind(String woNo, String supplierNum, String ipoNo, Integer currentPage, Integer pageSize ){
        System.out.println("----------------wono:"+woNo);
        LimitBean limitBean = produceService.LimitFind(woNo, supplierNum, ipoNo, currentPage, pageSize);
        if(limitBean!=null){
            return  limitBean;
        }
        return null;
    }

这里单纯的调用打印了一下没任何东西
2.service

//查询总记录数
    public  int getCount(String woNo, String supplierNum, String ipoNo, String collectionName){
        //写条件
        Query query = new Query(Criteria.where("woNo").is(woNo)
                .and("supplierNum").is(supplierNum)
                .and("ipoNo").is(ipoNo));
       /* Criteria criteria = new Criteria();
        criteria.where("woNO").is(woNo)
                .and("supplierNum").is(supplierNum)
                .and("ipoNo").is(ipoNo);
        query.addCriteria(criteria);*/
        //请求总记录数
        int count = (int) mongoTemplate.count(query,ProduceBean.class,collectionName);
        return count;
    }
	

这里我自己new了一个 Criteria不行 打断点看的时候没赋值成功,没有深究啥原因,本来是cv了大佬们的博客的代码发现不太行就修改成了现在这样写的就OK了

//分页查询
    public LimitBean LimitFind(String woNo, String supplierNum, String ipoNo, int currentPage, int pageSize) {
        try {
            //放入条件
            Query query = new Query(Criteria.where("woNo").is(woNo)
                    .and("supplierNum").is(supplierNum)
                    .and("ipoNo").is(ipoNo))
                    //设置起始参数
                    .skip((currentPage - 1) * pageSize)
                    //设置查询条数
                    .limit(pageSize);
            //设置起始数
            //query.skip((currentPage - 1) * pageSize);
            //设置查询条数
            //query.limit(pageSize);
            //查询当前页数据集合
            List<ProduceBean> produceBeansList = mongoTemplate.find(query
                             ,ProduceBean.class,"coil_is");

            for (ProduceBean produceBean : produceBeansList) {
                System.out.println("--------ipono:"+produceBean.getIpoNo());
            }
            //查询总记录数
            int count = getCount(woNo,supplierNum,ipoNo,"coil_is");
            System.out.println("------------------总个数:"+count);
            //创建分页实体对象
            LimitBean limitBean = new LimitBean();
            //添加每页的集合、数据总条数、总页数
            limitBean.setProduceList(produceBeansList);
            limitBean.setCount(count);
            limitBean.setTotal(count % pageSize == 0 ? count /pageSize : count / pageSize + 1);
            return limitBean;
        }catch (Exception o){
            //打印异常
            System.out.println(o);
        }
        return  null;

    }

3.实体类

@Data
public class LimitBean {
    //总条数
    private Integer total;
     //总条数
    private Integer count;
    //当前页
    //private  Integer currentPage;
    //每页显示数
    //private  Integer pageSize;
    //分页数据
    private List<ProduceBean> produceList;

}
@Data
public class ProduceBean {
    private  String _id;
    private  String woNo;
    private  String supplierNum;
    private  String ipoNo;
    private  List<String> list;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值