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进行复杂动态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));
}
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
SpringBoot项目打包war包时无法运行问题的解决方式
在开发工程中,使用启动类启动能够正常启动并测试,下面这篇文章主要给大家介绍了关于SpringBoot项目打包war包时无法运行问题的解决方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-06-06
Spring boot监控Actuator-Admin实现过程详解
这篇文章主要介绍了Spring boot监控Actuator-Admin实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-09-09
Springboot优化内置服务器Tomcat优化方式(underTow)
本文详细介绍了Spring Boot中Tomcat和Undertow服务器的配置和优化,包括初始线程数、最大线程数、最小备用线程数、最大请求数等参数的优化建议,以及在高并发场景下Undertow相对于Tomcat的优势2024-12-12
ConstraintValidator类如何实现自定义注解校验前端传参
这篇文章主要介绍了ConstraintValidator类实现自定义注解校验前端传参的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06


最新评论