EntityManager 使用 Pageable 分页
参考:Springboot+JPA+Hibernate动态查询及分页,使用Pageable以及entityManager_扶我起来,我要学java的博客-CSDN博客_hibernate pageable
一,通用方法
public <U> Page<U> findPage(String sql,Map<String, Object> params, Pageable pageable, Class<U> destType) {String countSql = "SELECT COUNT(*) FROM ( "+ sql +" ) getcount";Query query=em.createNativeQuery(sql);Query queryCount = em.createNativeQuery(countSql);//设置条件参数if(params!=null && params.size()>0) {for (Map.Entry<String, Object> entry : params.entrySet()) {query.setParameter(entry.getKey(), entry.getValue());queryCount.setParameter(entry.getKey(), entry.getValue());}}//查询总条数BigInteger totalCount = (BigInteger) queryCount.getSingleResult();//分页参数if(pageable!=null) {query.setFirstResult(pageable.getOffset());query.setMaxResults(pageable.getPageSize());}query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(destType));List resultList = query.getResultList();Page<U> page = new PageImpl<>(resultList,pageable,totalCount.longValue());return page;}
二,调用
@Overridepublic Page<SfOrder_Res> findPage() {String sql="select * from sf_order where state=:state";Map<String, Object> params=new HashMap<String, Object>();params.put("state","3");Pageable pageable = new PageRequestDto(1, 10, Sort.Direction.DESC, "createTime");Page<SfOrder_Res> page=findPage(sql,params,pageable, SfOrder_Res.class);return page;}
三,常规调用方式
@Overridepublic Page<Model> findWithAlone(int pageIndex, int pageSize) {String sql = "select * from Tab1 where Tab1.参数1=:参数1";String sql1 = "select count(1) from Tab1 where Tab1.参数1=:参数1";Query query = em.createNativeQuery(sql);query.setFirstResult((pageIndex-1)*pageSize);query.setMaxResults(pageSize);Query query1 = em.createNativeQuery(sql1);query.setParameter("参数1", 参数1);query1.setParameter("参数1", 参数1);Object count = query1.getSingleResult();Integer total = count != null ? Integer.parseInt(count.toString()) : 0;query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean(Model.class));List<Model> list = query.getResultList();Page<Model> page = new PageImpl<>(list, new PageRequest(pageIndex-1, pageSize), total);return page;}
EntityManager 使用 Pageable 分页相关推荐
- java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...
总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...
- jpa利用pageable分页排序
jpa利用pageable分页排序 @RequestMapping(value = "/testPageable", method = RequestMethod.GET) pub ...
- SpringDataJpa使用原生sql(EntityManager)动态拼接,分页查询
SpringDataJpa Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库.该模块处理对基于JPA的数据访问层的增强支持.它使构建使用数据访问技 ...
- pageable设置size_Spring的Pageable分页剖析
PageRequest extends AbstractPageRequest 而 AbstractPageRequset implements Pageable first: 写一个接受分页参数的P ...
- SpringBoot实现分类搜索(模糊)查询 Pageable分页
效果图如下: 数据库结构: Student学生表 stu表 sid学生id sname 学生姓名 sex性别 cid班级id address地址 sorts 排序 classes班级表 cid cn ...
- pageable分页处理
分页查询方法 spring提供了page,pageable接口来帮助实现分页功能的实现. 在原先查询中,Repository层不需要定义findAll()方法,可以直接在service层对其进行调用. ...
- 自定义java Pageable分页对象
前两天写service层的方法中需要对数据库中的数据进行分页查询,本来都是在接口层由前端传过来一个Pageable对象,在接口中对Pageable对象用注解进行定义,所以一时间不知道怎么写,后来得知, ...
- pageable设置size_使用Pageable 分页
1. service层 封装 packagecom.example.demo.service;importjava.util.List;importorg.springframework.data.d ...
- Pageable分页
https://www.jianshu.com/p/67249c7b81d4 转载于:https://www.cnblogs.com/bbllw/p/10789139.html
最新文章
- 这些大酒店用大数据和分析技术对我们做了什么?
- Matplotlib(一)工作流程
- 机器学习之 weka学习(一)weka介绍,安装和配置环境变量
- MVC之前的那点事儿系列(4):Http Pipeline详细分析(上)
- Python基础8—常用模块
- 运维之我的docker-Dockerfile构建镜像详情
- PHP读取某站点的链接的函数
- 测试工程师在软件测试阶段依据,北京软件测试工程师建立软件测试管理与评判体系...
- hadoop配置集群的心得
- Unity之读取身份证信息
- 亿赛通加密软件不显示小锁图标
- 《做难而正确的事》有感
- PageHelper分页pageSize和total异常问题
- 网易,这次你让粉丝们失望了
- mysql neq_ecshop中smarty比较操作符(eq,ne,neq)含义
- 2.什么是机械设计?
- Javascript特效:音乐钢琴
- ogg 登录mysql报字符集_GOLDENGATE ORACLE TO MYSQL 字符集出错
- 野生程序员的折腾—残酷的磨砺让我更加锋利(二)
- logstash简介及基本操作