spring date JPA动态条件查询

spring date Jpa 动态条件查询
构建动态sql前需要给Subscribe 实体 实现 Serializable
dao需要继承 extends JpaRepository<Subscribe, Long>, JpaSpecificationExecutor
主要代码:

 public Page<Subscribe> findSubscribeByCondition(int i,String name,String phone,String date,String bwg){
        PageRequest page = PageRequest.of(i,10);
        Specification<Subscribe> specification = new Specification<Subscribe>() {
            @Override
            public Predicate toPredicate(Root<Subscribe> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                // 动态 SQL表达式
                Predicate predicate = criteriaBuilder.conjunction();
                // 动态 SQL表达式集合
                List<Expression<Boolean>> expressions = predicate.getExpressions();
                if(name != null || name != ""){
                    expressions.add(criteriaBuilder.like(root.get("name").as(String.class),"%"+name+"%"));
                }
                if(phone != null || phone != ""){
                    expressions.add(criteriaBuilder.equal(root.get("number").as(String.class),phone));
                }
                if(date != null || date != ""){
                    expressions.add(criteriaBuilder.equal(root.get("date").as(String.class),date));
                }
                if(bwg != null || bwg != ""){
                    expressions.add(criteriaBuilder.equal(root.get("bwg").as(String.class),bwg));
                }
                return predicate;
            }
        };
        return subscribeDao.findAll(specification, page);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值