jpa 分页,排序,过滤
2015-12-09 15:51
316 查看
@RequestMapping(value="catalog")
public String catalog(Model model,
@RequestParam(value="category",
defaultValue="全部") final String category,
@RequestParam(value="goodsName",defaultValue="%") final String goodsName,
@RequestParam(value="sortColumn",defaultValue="updateTime") final String sortColumn,
@RequestParam(value="desc",defaultValue="desc") final String desc,
@RequestParam(value="pageNum", defaultValue="0") int pageNum,
@RequestParam(value="pageSize", defaultValue="8") int pageSize){
Pageable pageable = new PageRequest(pageNum, pageSize);
DataExDicRepository dicService = BeanFactory.getBean(DataExDicRepository.class);
Page<DataExApiGoods> dacpApiPage= dataExApiGoodsRepository.findAll(new Specification<DataExApiGoods>(){
@Override
public Predicate toPredicate(Root<DataExApiGoods> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
/*List<Predicate> predicate = new ArrayList<Predicate>();
if(!"全部".equals(category)){
predicate.add(cb.equal(root.get("dataExApi").get("category").as(String.class), category));
}
predicate.add(cb.like(root.get("goodsName").as(String.class), "%"+goodsName+"%"));
Predicate[] p = new Predicate[predicate.size()];
return cb.and(predicate.toArray(p)); */
Predicate p1 = null;
if(!"全部".equals(category)){
p1 = cb.equal(root.get("dataExApi").get("category").as(String.class), category);
}
Predicate p2 = cb.like(root.get("goodsName").as(String.class), "%"+goodsName+"%");
if(p1==null){
query.where(cb.and(p2));
}else{
query.where(cb.and(p1,cb.and(p2)));
}
if("desc".equals(desc)){
query.orderBy(cb.desc(root.get(sortColumn).as(String.class)));
}else if("asc".equals(desc)){
query.orderBy(cb.asc(root.get(sortColumn).as(String.class)));
}
return query.getRestriction();
}
},pageable);
List<DacpDataexDic> dacpDicList=dicService.findAll();
model.addAttribute("dacpDicList",dacpDicList);
model.addAttribute("page",dacpApiPage);
model.addAttribute("menuName","catalog");
model.addAttribute("category",category);
model.addAttribute("goodsName","%".equals(goodsName)?"":goodsName);
return "dataex/catalog/catalog";
}
public String catalog(Model model,
@RequestParam(value="category",
defaultValue="全部") final String category,
@RequestParam(value="goodsName",defaultValue="%") final String goodsName,
@RequestParam(value="sortColumn",defaultValue="updateTime") final String sortColumn,
@RequestParam(value="desc",defaultValue="desc") final String desc,
@RequestParam(value="pageNum", defaultValue="0") int pageNum,
@RequestParam(value="pageSize", defaultValue="8") int pageSize){
Pageable pageable = new PageRequest(pageNum, pageSize);
DataExDicRepository dicService = BeanFactory.getBean(DataExDicRepository.class);
Page<DataExApiGoods> dacpApiPage= dataExApiGoodsRepository.findAll(new Specification<DataExApiGoods>(){
@Override
public Predicate toPredicate(Root<DataExApiGoods> root,
CriteriaQuery<?> query, CriteriaBuilder cb) {
/*List<Predicate> predicate = new ArrayList<Predicate>();
if(!"全部".equals(category)){
predicate.add(cb.equal(root.get("dataExApi").get("category").as(String.class), category));
}
predicate.add(cb.like(root.get("goodsName").as(String.class), "%"+goodsName+"%"));
Predicate[] p = new Predicate[predicate.size()];
return cb.and(predicate.toArray(p)); */
Predicate p1 = null;
if(!"全部".equals(category)){
p1 = cb.equal(root.get("dataExApi").get("category").as(String.class), category);
}
Predicate p2 = cb.like(root.get("goodsName").as(String.class), "%"+goodsName+"%");
if(p1==null){
query.where(cb.and(p2));
}else{
query.where(cb.and(p1,cb.and(p2)));
}
if("desc".equals(desc)){
query.orderBy(cb.desc(root.get(sortColumn).as(String.class)));
}else if("asc".equals(desc)){
query.orderBy(cb.asc(root.get(sortColumn).as(String.class)));
}
return query.getRestriction();
}
},pageable);
List<DacpDataexDic> dacpDicList=dicService.findAll();
model.addAttribute("dacpDicList",dacpDicList);
model.addAttribute("page",dacpApiPage);
model.addAttribute("menuName","catalog");
model.addAttribute("category",category);
model.addAttribute("goodsName","%".equals(goodsName)?"":goodsName);
return "dataex/catalog/catalog";
}
相关文章推荐
- 【EntityFramework系列教程三,翻译】在ASP.NET MVC程序中使用EntityFramework对数据进行排序、过滤筛选以及实现分页
- [ECSide文档] ECSide基于数据库的分页、排序、过滤的实现
- SpringBoot JPA实现增删改查、分页、排序、事务操作等功能
- 按照过滤条件、排序语句、起始位置和每页条数获取分页数据
- MVC5+EF6--3 排序、过滤和分页
- EF6 学习笔记(三):排序、过滤查询及分页
- AspxGridView行为:分页、分组、排序、过滤、锁定列
- SPGridView绑定数据(实现分页,排序,过滤,带菜单)
- DataTables+BootStrap组合Ajax数据使用方法(排序,过滤,分页等)
- SpringData JPA实现CRUD,分页与多参数排序
- JPA集成queryDSL,灵活查询 (3.实现条件查询,排序,分页功能)
- MVC中使用EF:排序,过滤,分页
- lucene的排序过滤和分页
- Spring data JPA先排序再分页。
- 使用jpa做分页查询 以及过滤的方法
- ECSide基于数据库的分页、排序、过滤的实现
- MVC中使用EF(3):实现排序,过滤,分页
- 在ASP.NET MVC5中实现具有服务器端过滤、排序和分页的GridView
- springboot学习笔记5(JPA 实现分页、排序、返回map集合)