JPA条件查询时间区间用LocalDateTime的问题

@Override
    public Page<Order> findAll(String outTradeNo, String tradeNo, String mchAppid, String status, String payType,
            String startData, String endData, Pageable pageable) {
        Page<Order> pageList = orderDao.findAll((root,query,cb) -> {
            List<Predicate> list = new ArrayList<Predicate>();
            
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sdfmat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            if (StringUtils.isNotEmpty(startData) && StringUtils.isNotEmpty(endData)) {
                try {
                    list.add(cb.between(root.get("payTime"),
                            LocalDateTime.parse(sdfmat.format(sdf.parse(startData)),df),
                            LocalDateTime.parse(sdfmat.format(sdf.parse(endData).getTime()+86400000), df)));
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
            if(outTradeNo!=null && outTradeNo!="") {
                list.add(cb.like(root.get("outTradeNo"), "%"+outTradeNo+"%"));
            }
            if(tradeNo!=null && tradeNo!="") {
                list.add(cb.like(root.get("tradeNo"), "%"+tradeNo+"%"));
            }
            if(mchAppid!=null && mchAppid!="") {
                list.add(cb.like(root.get("mchAppid"), "%"+mchAppid+"%"));
            }
            if(status!=null && status!="") {
                list.add(cb.equal(root.get("state"), status));
            }
            if(payType!=null && payType!="") {
                list.add(cb.equal(root.get("payType"), payType));
            }
            Predicate[] array = new Predicate[list.size()];
            return cb.and(list.toArray(array));
        }, pageable);
        
        return pageList;
    }

 

转载于:https://www.cnblogs.com/yunqing/p/10551492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值