对 JPA 2 条件查询进行分页

Posted

技术标签:

【中文标题】对 JPA 2 条件查询进行分页【英文标题】:Paginating a JPA 2 criteria query 【发布时间】:2010-12-09 11:01:54 【问题描述】:

是否可以像在 Hibernate 中使用 setFirstResult 和 setMaxResults 那样对 JPA 2 criteria query 进行分页?

如果没有,有什么解决方法吗?

【问题讨论】:

【参考方案1】:

this 问题“jpa 2 hibernate limit (max results) to a CriteriaQuery”的重复

CriteriaQuery 不是可执行文件 询问。您需要创建一个 TypedQuery 第一次使用 EntityManager.createQuery(criteriaQuery)。 然后,您可以设置的最大结果 这个并执行它。

【讨论】:

谢谢。我搜索过,但该问题没有出现在“分页”的结果中。【参考方案2】:

是的,使用实体管理器并将条件查询作为参数传递:

List<?> results = em.createQuery(criteria).setFirstResult(offset).setMaxResults(5).getResultList();

【讨论】:

以上是关于对 JPA 2 条件查询进行分页的主要内容,如果未能解决你的问题,请参考以下文章

JPA分页查询与条件分页查询

spring data jpa 的分页以及条件查询

Spring Data 系列学习Spring Data JPA 自定义查询,分页,排序,条件查询

Spring Data JPA中带条件的分页查询

MybatisPlus分页条件查询

jpa自定义条件分页查询