日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring data jpa实现有条件的分页查询功能

發布時間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring data jpa实现有条件的分页查询功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

spring data jpa實現有條件的分頁查詢功能


前端部分代碼。發送請求:

$('#grid').datagrid({iconCls: 'icon-forward',fit: true,border: false,rownumbers: true,striped: true,pageList: [30, 50, 100],pagination: true,toolbar: toolbar,url: "../../courier_pageQuery.action",idField: 'id',columns: columns,onDblClickRow: doDblClickRow });

提交查詢請求:

$("#searchBtn").click(function(){//將數據轉換為json格式var params = $("#searchForm").serializeJson();//將json對象綁定到datagrid上,完成帶有條件的查詢請求$("#grid").datagrid('load',params);//關閉查詢窗口$("#searchWindow").window('close'); });

Action:

//快遞員分頁查詢 @Action(value="courier_pageQuery",results={@Result(name="success",type="json")}) public String pageQuery(){Pageable pageable = new PageRequest(page-1,rows);//封裝條件查詢對象SpecificationSpecification<Courier> specification = new Specification<Courier>(){@Override// Root 用于獲取屬性字段,CriteriaQuery可以用于簡單條件查詢,CriteriaBuilder 用于構造復雜條件查詢public Predicate toPredicate(Root<Courier> root,CriteriaQuery<?> query, CriteriaBuilder cb) {//集合 用于封裝查詢條件List<Predicate> list = new ArrayList<Predicate>();//簡單單表查詢if(StringUtils.isNotBlank(courier.getCourierNum())){Predicate p1 = cb.equal(root.get("courierNum").as(String.class),courier.getCourierNum());list.add(p1);}if(StringUtils.isNotBlank(courier.getCompany())){Predicate p2 = cb.like(root.get("company").as(String.class),"%"+courier.getCompany()+"%");list.add(p2);}if(StringUtils.isNotBlank(courier.getType())){Predicate p3 = cb.equal(root.get("type").as(String.class),courier.getType());list.add(p3);}//多表查詢Join<Courier,Standard> standardJoin = root.join("standard",JoinType.INNER);if(courier.getStandard().getName()!=null){Predicate p4 = cb.like(standardJoin.get("name").as(String.class),"%"+courier.getStandard().getName()+"%" );list.add(p4);}return cb.and(list.toArray(new Predicate[0]));}};//調用業務層,返回PagePage<Courier> pageData = courierService.findPageData(specification,pageable);//將返回page對象轉換為datagrid所需要的數據格式Map<String,Object> result = new HashMap<String,Object>();result.put("total", pageData.getTotalElements());result.put("rows", pageData.getContent());ActionContext.getContext().getValueStack().push(result);return SUCCESS; }

service層:

//快遞員分頁查詢 @Override public Page<Courier> findPageData(Specification<Courier> specification,Pageable pageable) {// TODO Auto-generated method stubreturn courierRepository.findAll(specification,pageable); }

dao層:

public interface CourierRepository extends JpaRepository<Courier,Integer>,JpaSpecificationExecutor<Courier> {}

總結

以上是生活随笔為你收集整理的spring data jpa实现有条件的分页查询功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。