springJpa中分頁語句裏拼接orderBy

if(geReqMain.getInputDate()!=null){
list.add(cb.equal(root.<Date> get("inputDate"), geReqMain.getInputDate()));
}
public Page<GeReqMain> findGeReqMainDtoList(final GeReqMain geReqMain, Pager pager) {
		
		Page<GeReqMain> pages = null;
		Pageable pr = new PageRequest(pager.getPageNum() - 1,pager.getNumPerPage());
		pages = geReqMainDao.findAll(new Specification<GeReqMain>() {
			public Predicate toPredicate(Root<GeReqMain> root,
					CriteriaQuery<?> query, CriteriaBuilder cb) {
				if (null == geReqMain) {
					return null;
				}
				List<Predicate> list = new ArrayList<Predicate>();
				// 加入查詢條件
				if (!StringUtils.isEmpty(geReqMain.getReqId())) {
					list.add(cb.like(root.get("reqId").as(String.class), "%"+ geReqMain.getReqId().trim() + "%"));
				}
				if (!StringUtils.isEmpty(geReqMain.getReqName())) {
					list.add(cb.like(root.get("reqName").as(String.class), "%"+ geReqMain.getReqName().trim() + "%"));
				}
				if (!StringUtils.isEmpty(geReqMain.getReqOA())) {	
					list.add(cb.like(root.get("reqOA").as(String.class), "%"+ geReqMain.getReqOA().trim() + "%"));
				}
				if (!StringUtils.isEmpty(geReqMain.getOnLineOA())) {	
					list.add(cb.like(root.get("onLineOA").as(String.class), "%"+ geReqMain.getOnLineOA().trim() + "%"));
				}
				if (!StringUtils.isEmpty(geReqMain.getReqNode())) {	
					list.add(cb.like(root.get("reqNode").as(String.class), "%"+ geReqMain.getReqNode().trim() + "%"));
				}
				if(geReqMain.getInputDate()!=null){
					list.add(cb.equal(root.<Date> get("inputDate"), geReqMain.getInputDate()));
				}
				if (!StringUtils.isEmpty(geReqMain.getAgencyCode())) {	
					list.add(cb.like(root.get("agencyCode").as(String.class), "%"+ geReqMain.getAgencyCode().trim() + "%"));
				}
				List<Order> lists = new ArrayList<Order>();//查詢語句拼接orderBy
				lists.add(cb.desc(root.get("reqId").as(String.class)));
				query.orderBy(lists);
				Predicate[] p = new Predicate[list.size()];
				return cb.and(list.toArray(p));
			}
		}, pr);
		return pages;
	}	

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章