只有继承JpaSpecificationExecutor<>类,才能多条件分页查询。
eg:
@Override public Page<OrderHistory> findAll(Pageable pageable, Long userId, Long orderId) { return orderHistoryRepository.findAll((root, query, cb) -> { List<Predicate> list = new ArrayList<>(); if (userId != null) { list.add(cb.equal((root.get("userId").as(Long.class)), userId)); } list.add(cb.notEqual((root.get("id").as(Long.class)), orderId)); Predicate[] p = new Predicate[list.size()]; query.where(cb.and(list.toArray(p))); return query.getRestriction(); }, pageable); } |