Spring Data JPA 复杂/多条件组合分页查询
2016-09-09 16:44
603 查看
推荐视频:
http://www.icoolxue.com/album/show/358
buildPageRequest()方法,导入的包,下面是自己写的方法
publicstaticPageRequestbuildPageRequest(intpageNum,intpageSize,StringsortType){
returnbuildPageRequest(pageNum,pageSize,sortType,null);
}
getPageMap()方法:
JPA的Page也是集合,获取Page集合里的值,最后获取到的这些(key,value)
publicMap<String,Object>getWeeklyBySearch(finalMap<String,String>serArgs, StringpageNum,StringpageSize)throwsException{ //TODOAuto-generatedmethodstub Map<String,Object>resultMap=newHashMap<String,Object>(); //判断分页条件 pageNum=TextUtils.isNotBlank(pageNum)?pageNum:"1"; pageSize=TextUtils.isNotBlank(pageSize)?pageSize:"10"; //分页时的总页数、每页条数、排序方式、排序字段 PageableStuPageable=PageUtils.buildPageRequest(Integer.valueOf(pageNum),Integer.valueOf(pageSize),newSort(Direction.DESC,newString[]{"xmzbsj","lstProinfo.proId"})); //按照条件进行分页查询,根据StuPageable的分页方式 Page<Weekly>StuPage=proWeeklyDao.findAll(newSpecification<Weekly>(){ publicPredicatetoPredicate(Root<Weekly>root,CriteriaQuery<?>query,CriteriaBuildercb){ List<Predicate>lstPredicates=newArrayList<Predicate>(); if(TextUtils.isNotBlank(serArgs.get("xmmc"))){ lstPredicates.add(cb.like(root.get("lstProinfo").get("xmmc").as(String.class),"%"+serArgs.get("xmmc")+"%")); } if(TextUtils.isNotBlank(serArgs.get("xmzbqssj"))){ lstPredicates.add(cb.greaterThanOrEqualTo(root.get("xmzbsj").as(String.class),serArgs.get("xmzbqssj"))); } if(TextUtils.isNotBlank(serArgs.get("xmzbjzsj"))){ lstPredicates.add(cb.lessThanOrEqualTo(root.get("xmzbsj").as(String.class),serArgs.get("xmzbjzsj"))); } Predicate[]arrayPredicates=newPredicate[lstPredicates.size()]; returncb.and(lstPredicates.toArray(arrayPredicates)); } },StuPageable); //按照条件进行分页查询 resultMap=PageUtils.getPageMap(StuPage); returnresultMap; }
buildPageRequest()方法,导入的包,下面是自己写的方法
importorg.springframework.data.domain.Page; importorg.springframework.data.domain.PageRequest; importorg.springframework.data.domain.Sort; importorg.springframework.data.domain.Sort.Direction;
*@parampageNum当前页 *@parampageSize每页条数 *@paramsortType排序字段 *@paramdirection排序方向 */ publicstaticPageRequestbuildPageRequest(intpageNum,intpageSize,StringsortType,Stringdirection){ Sortsort=null; if(!TextUtils.isNotBlank(sortType)){ returnnewPageRequest(pageNum-1,pageSize); }elseif(TextUtils.isNotBlank(direction)){ if(Direction.ASC.equals(direction)){ sort=newSort(Direction.ASC,sortType); }else{ sort=newSort(Direction.DESC,sortType); } returnnewPageRequest(pageNum-1,pageSize,sort); }else{ sort=newSort(Direction.ASC,sortType); returnnewPageRequest(pageNum-1,pageSize,sort); } }
publicstaticPageRequestbuildPageRequest(intpageNum,intpageSize,StringsortType){
returnbuildPageRequest(pageNum,pageSize,sortType,null);
}
getPageMap()方法:
JPA的Page也是集合,获取Page集合里的值,最后获取到的这些(key,value)
/**
*封装分页数据到Map中。
*/
publicstaticMap<String,Object>getPageMap(Page<?>objPage){
Map<String,Object>resultMap=newHashMap<String,Object>();
resultMap.put(Constants.PAGE_RESULT_LIST,objPage.getContent());//数据集合,符合查询条件的所有记录数据
resultMap.put(Constants.PAGE_TOTAL_NUM,objPage.getTotalElements());//总记录数
resultMap.put(Constants.PAGE_TOTAL_PAGE,objPage.getTotalPages());//总页数
resultMap.put(Constants.PAGE_NUM,objPage.getNumber());//当前页码
resultMap.put(Constants.PAGE_SIZE,objPage.getSize());//每页显示数量
returnresultMap;
}
相关文章推荐
- Spring Data JPA 复杂/多条件组合分页查询
- Spring Data JPA 复杂/多条件组合查询
- Spring Data JPA 复杂/多条件组合查询
- 【重点###】SpringDataJPA的组合条件分页查询(笔记思路,便于忘了复习)页面:EasyUI
- Spring Data JPA 复杂/多条件组合查询
- struts hibernate spring 实现分页、排序、复杂条件查询②
- jqGrid分页技术学习(九)spring jdbc多单条件组合查询
- spring data JPA 中带查询条件的分页in的用法
- Spring Data JPA 复杂/多条件组合查询
- C#-WebForm-★★★LinQ-数据的条件组合查询并进行分页展示(未加各种限定)★★★
- 多条件组合查询+分页 ---轉載的
- Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)
- 框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)
- spring data jpa 利用JpaSpecificationExecutor做复杂查询
- 详解Spring Data JPA动态条件查询的写法
- spring data jpa 条件分页查询
- Spring+Hibernate 复杂查询分页
- Spring+Hibernate 复杂查询分页
- Spring+Hibernate 复杂查询分页
- Subsonic 复杂查询(动态条件) 连表、分页