spring date Jpa 动态条件查询
构建动态sql前需要给Subscribe 实体 实现 Serializable
dao需要继承 extends JpaRepository
主要代码:
public PagefindSubscribeByCondition(int i,String name,String phone,String date,String bwg){ PageRequest page = PageRequest.of(i,10); Specification specification = new Specification () { @Override public Predicate toPredicate(Root root, CriteriaQuery> criteriaQuery, CriteriaBuilder criteriaBuilder) { // 动态 SQL表达式 Predicate predicate = criteriaBuilder.conjunction(); // 动态 SQL表达式集合 List > 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); }



