高防服务器

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


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

发布时间:2021-11-21 12:15:15 来源:高防服务器网 阅读:82 作者:小新 栏目:开发技术

小编给大家分享一下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进行复杂动态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查询并分页”有了一定的了解,如果想了解更多相关知识,欢迎关注高防服务器网行业资讯频道,感谢各位的阅读!

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[