MongoRepository自定义条件及分页查询代码

@Autowired
    private PassengerRepository passengerRepository;


    public PageInfo getPassengers(PageInfo page, Passenger passenger) {
        //分页参数
        int pageNum = page.getPageNum();
        int pageSize = page.getPageSize();
        if(pageNum <=0){
            pageNum = 1;
        }
        pageNum = pageNum -1;
        if(pageSize<=0){
            pageSize = 10;
        }
        Pageable pageable = PageRequest.of(pageNum,pageSize);
        //自定义条件查询
        //定义条件匹配器
        ExampleMatcher exampleMatcher = ExampleMatcher.matching()
                .withIgnorePaths("source","companyId","state","flag","isok","updateTime","id","result","registerDate")//忽略属性
                .withIgnoreCase(true)//忽略大小写
                .withMatcher("sender", ExampleMatcher.GenericPropertyMatchers.contains());
        Example example = Example.of(passenger, exampleMatcher);

        Page all = passengerRepository.findAll(example,pageable);
        // Page all = passengerRepository.findAll(pageable);
        page.setList(all.getContent());
        page.setTotal(all.getTotalElements());
        return page;
    }

注意忽略属性!!!

PassengerRepository :

import org.springframework.data.mongodb.repository.MongoRepository;

public interface PassengerRepository extends MongoRepository {

}

 

你可能感兴趣的:(MongoDB)