纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

Spring Data JPA使用QueryDsl查询分页 Spring Data JPA 怎样使用QueryDsl查询并分页

Mr_ZhangAdd   2021-11-20 我要评论
想了解Spring Data JPA 怎样使用QueryDsl查询并分页的相关内容吗,Mr_ZhangAdd在本文为您仔细讲解Spring Data JPA使用QueryDsl查询分页的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Spring,Data,JPA,QueryDsl查询,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进行复杂动态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));
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。


相关文章

猜您喜欢

  • MySQL中的group by 浅谈MySQL中的group by

    想了解浅谈MySQL中的group by的相关内容吗,李子捌在本文为您仔细讲解MySQL中的group by的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:MySQL中的group,by,group,by,下面大家一起来学习吧。..
  • Java 在线点餐系统 Java实战项目之在线点餐系统的实现流程

    想了解Java实战项目之在线点餐系统的实现流程的相关内容吗,qq_1334611189在本文为您仔细讲解Java 在线点餐系统的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Java在线点餐系统,Java实战,下面大家一起来学习吧。..

网友评论

Copyright 2020 www.mwhsoft.com 【绿色软件站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式