JPA分页查询怎么做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA分页查询怎么做相关的知识,希望对你有一定的参考价值。
用JpaCallback类,此类可以调用到EntityManager对象,然后通过query的setFirstResult setMaxResults方法分页。
要注意Query是下面这个类import javax.persistence.Query;。不是hibernate的Query。
举个例子:
参考技术A NamedQuery(返回方式为列模式[原生态sql的复杂查询])1)dao层处理查询并分页
Java代码
1. @SuppressWarnings("unchecked")
2. public PageResult<T> getList(Integer currentPage)
3. PageResult<T> pageResult = new PageResult<T>();
4. int pageSize = Constant.DEFAULT_PAGE_SIZE;
5. int start = (currentPage - 1) * pageSize;
6. Query query = getEntityManager().createNamedQuery("ReturnTrainAppyUser");
7. int total = query.getResultList().size();
8. // 判断分页
9. if (start < total && pageSize > 0)
10. query.setFirstResult(start);
11. query.setMaxResults(pageSize); 参考技术B JPA的Query里面有2个方法setFirstResult setMaxResults
通过这2个方法可以实现分页查询
MybatisPlus分页条件查询
参考技术A 前提:先导入MybatisPlus相关依赖1、配置分页插件(不需要修改)
2、将查询条件封装成类
3、接口使用get请求,传入需要的参数
query接口
4、获得条件后,执行多条件分页查询
myquery()方法
(5、控制台查看底层执行的SQL)
配置属性
按照以上配置后MyBatis-Plus分页后total和pages总为0,需要添加添加MyBatis-Plus分页的配置:
注意新版配置和老版配置有区别:
老版本:
新版本:
以上是关于JPA分页查询怎么做的主要内容,如果未能解决你的问题,请参考以下文章