小编给大家分享一下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() 可看出返回类型。
补充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查询并分页”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。