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分页查询怎么做的主要内容,如果未能解决你的问题,请参考以下文章

oracle做分页查询怎么做?

怎么把查询全部和模糊查询分页放在一起

MySQL分页查询LIMIT

MySQL 百万级数据,怎么做分页查询?

读 CSV/TXT 的报表怎么做分页查询?

读 CSV/TXT 的报表怎么做分页查询?