欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)用的簡單示例

    這篇文章主要介紹了SpringCloudAlibaba 整合 Feign 實(shí)現(xiàn)遠(yuǎn)程 HTTP 調(diào)用,文章中使用的是OpenFeign,是Spring社區(qū)開發(fā)的組件,需要的朋友可以參考下
    2021-09-09
  • 詳解JAVA Timer和TimerTask

    詳解JAVA Timer和TimerTask

    這篇文章主要介紹了JAVA Timer和TimerTask的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • JavaWeb Session失效時(shí)間設(shè)置方法

    JavaWeb Session失效時(shí)間設(shè)置方法

    這篇文章主要介紹了JavaWeb Session失效時(shí)間設(shè)置方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-12-12
  • 基于JavaMail的Java郵件發(fā)送

    基于JavaMail的Java郵件發(fā)送

    電子郵件的應(yīng)用非常廣泛,例如在某網(wǎng)站注冊了一個(gè)賬戶,自動(dòng)發(fā)送一封歡迎郵件,通過郵件找回密碼,自動(dòng)批量發(fā)送活動(dòng)信息等。本文將簡單介紹如何通過 Java 代碼來創(chuàng)建電子郵件,并連接郵件服務(wù)器發(fā)送郵件
    2021-10-10
  • springboot整合消息隊(duì)列RabbitMQ

    springboot整合消息隊(duì)列RabbitMQ

    這篇文章主要介紹了springboot整合消息隊(duì)列RabbitMQ,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Sentinel初始化啟動(dòng)流程詳細(xì)介紹

    Sentinel初始化啟動(dòng)流程詳細(xì)介紹

    Sentinel是一個(gè)分布式系統(tǒng)的流量控制組件,它可以實(shí)現(xiàn)限流與流控及降級(jí)等功能,提高系統(tǒng)的穩(wěn)定性和可靠性,這篇文章主要介紹了Sentinel的初始化流程,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • 深入理解Spring MVC概要與環(huán)境配置

    深入理解Spring MVC概要與環(huán)境配置

    本篇文章主要介紹了深入理解Spring MVC概要與環(huán)境配置 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • java 使用foreach遍歷集合元素的實(shí)例

    java 使用foreach遍歷集合元素的實(shí)例

    這篇文章主要介紹了java 使用foreach遍歷集合元素的實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家理解如何使用foreach 進(jìn)行遍歷,希望能幫助到大家,
    2017-08-08
  • Spring Boot 基于注解的 Redis 緩存使用詳解

    Spring Boot 基于注解的 Redis 緩存使用詳解

    本篇文章主要介紹了Spring Boot 基于注解的 Redis 緩存使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java多線程之線程狀態(tài)的遷移詳解

    Java多線程之線程狀態(tài)的遷移詳解

    線程狀態(tài)遷移,又常被稱作線程的生命周期,指的是線程從創(chuàng)建到終結(jié)需要經(jīng)歷哪些狀態(tài),什么情況下會(huì)出現(xiàn)哪些狀態(tài).線程的狀態(tài)直接關(guān)系著并發(fā)編程的各種問題,本文就線程的狀態(tài)遷移做一初步探討,并總結(jié)在何種情況下會(huì)出現(xiàn)這些狀態(tài),需要的朋友可以參考下
    2021-06-06

最新評論