public QueryResponseResult findAllPage(int page, int size, RequestData requestData){
if(requestData == null){
requestData = new RequestData();
}
//自定义条件查询
//定义条件匹配器
ExampleMatcher exampleMatcher = ExampleMatcher.matching()
.withMatcher("chinese", ExampleMatcher.GenericPropertyMatchers.contains())
.withMatcher("english",ExampleMatcher.GenericPropertyMatchers.contains());
Term term = new Term();
//设置查询条件
if(StringUtils.isNotEmpty(requestData.getChinese())){
term.setChinese(requestData.getChinese());
}
if(StringUtils.isNotEmpty(requestData.getEnglish())){
term.setEnglish(requestData.getEnglish());
}
//定义条件对象Example
Example<Term> example = Example.of(term,exampleMatcher);
if(page<=0){
page=1;
}
page=page-1;
if(size<=0){
size=10;
}
Pageable pageable = PageRequest.of(page,size);
Page<Term> all = termRepository.findAll(example,pageable);//实现自定义条件查询并且分页查询
QueryResult queryResult = new QueryResult();
queryResult.setList(all.getContent());//数据列表
queryResult.setTotal(all.getTotalElements());//数据总记录数
QueryResponseResult queryResponseResult = new QueryResponseResult(CommonCode.SUCCESS,queryResult);
return queryResponseResult;
}
ExampleMatcher是一个查询条件匹配器,用来设置查询的条件是模糊查询或精确查询等等。
Example用来存放查询对象和查询方式。
Pageable用来存放页码和每页显示多少条记录,
findAll()把两个东西放进来。