参考: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 分页相关推荐

  1. java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...

    总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...

  2. jpa利用pageable分页排序

    jpa利用pageable分页排序 @RequestMapping(value = "/testPageable", method = RequestMethod.GET) pub ...

  3. SpringDataJpa使用原生sql(EntityManager)动态拼接,分页查询

    SpringDataJpa Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库.该模块处理对基于JPA的数据访问层的增强支持.它使构建使用数据访问技 ...

  4. pageable设置size_Spring的Pageable分页剖析

    PageRequest extends AbstractPageRequest 而 AbstractPageRequset implements Pageable first: 写一个接受分页参数的P ...

  5. SpringBoot实现分类搜索(模糊)查询 Pageable分页

    效果图如下: 数据库结构: Student学生表 stu表 sid学生id sname 学生姓名 sex性别 cid班级id address地址 sorts 排序 classes班级表 cid  cn ...

  6. pageable分页处理

    分页查询方法 spring提供了page,pageable接口来帮助实现分页功能的实现. 在原先查询中,Repository层不需要定义findAll()方法,可以直接在service层对其进行调用. ...

  7. 自定义java Pageable分页对象

    前两天写service层的方法中需要对数据库中的数据进行分页查询,本来都是在接口层由前端传过来一个Pageable对象,在接口中对Pageable对象用注解进行定义,所以一时间不知道怎么写,后来得知, ...

  8. pageable设置size_使用Pageable 分页

    1. service层 封装 packagecom.example.demo.service;importjava.util.List;importorg.springframework.data.d ...

  9. Pageable分页

    https://www.jianshu.com/p/67249c7b81d4 转载于:https://www.cnblogs.com/bbllw/p/10789139.html

最新文章

  1. 这些大酒店用大数据和分析技术对我们做了什么?
  2. Matplotlib(一)工作流程
  3. 机器学习之 weka学习(一)weka介绍,安装和配置环境变量
  4. MVC之前的那点事儿系列(4):Http Pipeline详细分析(上)
  5. Python基础8—常用模块
  6. 运维之我的docker-Dockerfile构建镜像详情
  7. PHP读取某站点的链接的函数
  8. 测试工程师在软件测试阶段依据,北京软件测试工程师建立软件测试管理与评判体系...
  9. hadoop配置集群的心得
  10. Unity之读取身份证信息
  11. 亿赛通加密软件不显示小锁图标
  12. 《做难而正确的事》有感
  13. PageHelper分页pageSize和total异常问题
  14. 网易,这次你让粉丝们失望了
  15. mysql neq_ecshop中smarty比较操作符(eq,ne,neq)含义
  16. 2.什么是机械设计?
  17. Javascript特效:音乐钢琴
  18. ogg 登录mysql报字符集_GOLDENGATE ORACLE TO MYSQL 字符集出错
  19. 野生程序员的折腾—残酷的磨砺让我更加锋利(二)
  20. logstash简介及基本操作

热门文章

  1. php 仓储系统,一库仓储,PHP开源进销存系统 v2.8
  2. MYSQL一目了然 JOIN 图
  3. NOIP2007 提高组【矩阵取数游戏】题解
  4. 全方位了解VR全景展示与制作
  5. 【老骥伏枥,志在千里】今天来看看xmlHttpRequest
  6. CSDN设置头像不显示
  7. 你什么都没错,只是太老了。
  8. SaleSmartly聊天机器人如何帮助您的电商业务(二)
  9. 陆续升级HarmonyOS,华为旗舰手机今年4月起可陆续升级鸿蒙系统HarmonyOS
  10. ArcGIS 生成切片方案中英文菜单对比