您好,登錄后才能下訂單哦!
小編給大家分享一下Spring Data JPA怎么使用QueryDsl查詢并分頁,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
QProblemPoint qProblemPoint = QProblemPoint.problemPoint; Map<String,String> map = getWhere(param); JPAQuery<ProblemPoint> query = jpaQueryFactory .selectFrom(qProblemPoint) .where( qProblemPoint.problemClassify.like(map.get("problemClassify")),//問題分類 qProblemPoint.problemLevel.like(map.get("problemLevel")),//問題級別 qProblemPoint.securityRiskEvent.like(map.get("securityRiskEvent")),//風險事件 qProblemPoint.riskItems.like(map.get("riskItems"))//安全風險項 ); List<ProblemPoint> list = query .offset(param.getStart()) .limit(param.getLength()).fetch(); long count = query.fetchCount();
QProblemPoint
:是編譯出來的實體
query
:根據條件查詢出來的集合
list
:根據前臺傳來的進行分頁操作
.fetch()
:相當于.get() 可看出返回類型。
補充springDataJpa進行復雜動態sql語句進行sql查詢 實現 關聯 分頁等功能
@Test public void testComplexSelect() { QQyOnlineCall onlineCall = QQyOnlineCall.qyOnlineCall; QClientList clientList = QClientList.clientList; // page必須從1開始 PageRequest request = PageRequest.of(0, 10); // 構建復雜查詢語句 List<Tuple> result = mFactory.select(onlineCall.id, onlineCall.cUsesign, onlineCall.cYgscode, clientList.cClientname, clientList.cPhone1) .from(onlineCall) .leftJoin(clientList) .on(onlineCall.cClientid.eq(clientList.id)) .where(onlineCall.cCom.eq("C0003")) .limit(request.getPageSize()) // 單頁查詢數量 .offset(request.getPageSize() * request.getPageNumber()) // 偏移量 .fetch(); // 獲取結果 for (Tuple tuple : result) { HashMap<String, Object> map = new HashMap<>(); map.put("id", tuple.get(onlineCall.id)); map.put("useSign", tuple.get(onlineCall.cUsesign)); map.put("ygsCode", tuple.get(onlineCall.cYgscode)); map.put("clientName", tuple.get(clientList.cClientname)); map.put("phone", tuple.get(clientList.cPhone1)); System.out.println(JsonUtils.toJson(map)); } }
看完了這篇文章,相信你對“Spring Data JPA怎么使用QueryDsl查詢并分頁”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。