@Service
public class UserServiceImpl implements UserService {
@Autowired
UserRepository userRepository;
public Page<User> findAll(Parm parm) {
Sort sort = Sort.by(Sort.Order.desc("id"));
Pageable pageable = PageRequest.of(parm.getPageNo()-1, parm.getPageSize(),sort);
Specification<User> specification = (Specification<User>) (root, query, criteriaBuilder) -> {
List<Predicate> list = new ArrayList<>();
if (!StringUtils.isEmpty(findAllParm.getProvince())) {
Predicate p1 = criteriaBuilder.equal(root.get("province"), parm.getProvince());
list.add(p1);
}
if (!StringUtils.isEmpty(findAllParm.getCity())) {
Predicate p2 = criteriaBuilder.equal(root.get("city"), parm.getCity());
list.add(p2);
}
if (!StringUtils.isEmpty(findAllParm.getCityarea())) {
Predicate p3 = criteriaBuilder.equal(root.get("cityarea"), parm.getCityarea());
list.add(p3);
}
Predicate[] pre = new Predicate[list.size()];
return criteriaBuilder.and(list.toArray(pre));
};
return userRepository.findAll(specification, pageable);
}
}
public interface UserRepository extends JpaRepositoryImplementation<User,Integer> {
}
此分findAll分页查询来自JpaSpecificationExecutor接口,所以继承该接口或者其子接口都可以调用该方法
JPA 单表多条件分页
最新推荐文章于 2023-07-31 10:20:37 发布