Spring Data JPA 如何使用QueryDsl查詢并分頁
更新時(shí)間:2021年11月20日 11:52:15 作者:Mr_ZhangAdd
這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
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")),//問題級(jí)別 qProblemPoint.securityRiskEvent.like(map.get("securityRiskEvent")),//風(fēng)險(xiǎn)事件 qProblemPoint.riskItems.like(map.get("riskItems"))//安全風(fēng)險(xiǎn)項(xiàng) ); List<ProblemPoint> list = query .offset(param.getStart()) .limit(param.getLength()).fetch(); long count = query.fetchCount();
QProblemPoint
:是編譯出來的實(shí)體query
:根據(jù)條件查詢出來的集合list
:根據(jù)前臺(tái)傳來的進(jìn)行分頁操作.fetch()
:相當(dāng)于.get() 可看出返回類型。
使用QueryDSL
補(bǔ)充springDataJpa進(jìn)行復(fù)雜動(dòng)態(tài)sql語句進(jìn)行sql查詢 實(shí)現(xiàn) 關(guān)聯(lián) 分頁等功能
@Test public void testComplexSelect() { QQyOnlineCall onlineCall = QQyOnlineCall.qyOnlineCall; QClientList clientList = QClientList.clientList; // page必須從1開始 PageRequest request = PageRequest.of(0, 10); // 構(gòu)建復(fù)雜查詢語句 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()) // 單頁查詢數(shù)量 .offset(request.getPageSize() * request.getPageNumber()) // 偏移量 .fetch(); // 獲取結(jié)果 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)); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringCloudAlibaba整合Feign實(shí)現(xiàn)遠(yuǎn)程HTTP調(diào)用的簡單示例
這篇文章主要介紹了SpringCloudAlibaba 整合 Feign 實(shí)現(xiàn)遠(yuǎn)程 HTTP 調(diào)用,文章中使用的是OpenFeign,是Spring社區(qū)開發(fā)的組件,需要的朋友可以參考下2021-09-09JavaWeb Session失效時(shí)間設(shè)置方法
這篇文章主要介紹了JavaWeb Session失效時(shí)間設(shè)置方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12Spring Boot 基于注解的 Redis 緩存使用詳解
本篇文章主要介紹了Spring Boot 基于注解的 Redis 緩存使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05