uniapp开发app框架在提升开发效率中的独特优势与应用探索
1205
2022-11-21
Spring Data JPA 如何使用QueryDsl查询并分页
目录Spring Data JPA 使用QueryDsl查询并分页使用QueryDSL
Spring Data JPA 使用QueryDsl查询并分页
QProblemPoint qProblemPoint = QProblemPoint.problemPoint;
Map
JPAQuery
.selectFrom(qProblemPoint)
.where(
qProbllyBeUsSemPoint.problemClassify.like(map.get("problemClassify")),//问题分类
qProblemPoint.problemLevel.like(map.get("problemLevel")),//问题级别
qProblemPoint.securityRiskEvent.like(map.get("securityRiskEvent")),//风险事件
qProblemPoint.riskItems.like(map.get("riskItems"))//安全风险项
);
List
.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
.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
map.put("id", tuple.get(onlineCall.id));
map.put("useSign", tuple.get(onlineCall.cUsesign));
map.put("ygsCodehttp://", tuple.get(onlineCall.cYgscode));
map.put("clientName", tuple.get(clientList.cClientname));
map.put("phone", tuple.get(clientList.cPhone1));
System.out.println(jsonUtils.toJson(map));
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~