JPA Specification常用查询+排序

第一步:继承父类

public interface TblCarton2RCardLogRepository extends JpaRepository<TblCarton2RCardLog, String>,JpaSpecificationExecutor<TblCarton2RCardLog> {

第二步:

tblCarton2RCardLogRepository.findAll(new Specification<TblCarton2RCardLog>() {
    @Override
    public  Predicate toPredicate(Root<TblCarton2RCardLog> root, CriteriaQuery<?> query,CriteriaBuilder cb) {
        List<Predicate> list = new ArrayList<Predicate>();

        list.add(cb.equal(root.get("cartonNo").as(String.class), cartonNo));//某普通字段

        list.add(cb.equal(root.get("id").get("rCard").as(String.class), rCard));//主键中某字段

        list.add(cb.like(root.get("mocode").as(String.class), "%" + mocode + "%"));//like

        list.add(cb.between(root.get("frozenDate").as(Long.class), frozenDateStart, frozenDateEnd));//between and

        list.add(cb.greaterThanOrEqualTo(root.get("id").get("rcard").as(String.class), rCardStart));//大于等于

        list.add(root.get("id").get("lotNo").as(String.class).in(lotNos));//in

        //ORDER BY packdate DESC,packtime DESC
        Predicate[] p = new Predicate[list.size()];
        query.where(cb.and(list.toArray(p)));
        query.orderBy(cb.desc(root.get("packDate")),cb.desc(root.get("packTime")));

        return query.getRestriction();
    }
});

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值