Spring Data JPA 如何使用QueryDsl查詢并分頁
更新時間:2021年11月20日 11:52:15 作者:Mr_ZhangAdd
這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
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() 可看出返回類型。
使用QueryDSL
補充springDataJpa進行復雜動態(tài)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)); } }
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringCloudAlibaba整合Feign實現遠程HTTP調用的簡單示例
這篇文章主要介紹了SpringCloudAlibaba 整合 Feign 實現遠程 HTTP 調用,文章中使用的是OpenFeign,是Spring社區(qū)開發(fā)的組件,需要的朋友可以參考下2021-09-09Spring Boot 基于注解的 Redis 緩存使用詳解
本篇文章主要介紹了Spring Boot 基于注解的 Redis 緩存使用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05