限制 JPQL 中的结果数

2022-08-31 17:15:40

如何限制从数据库中检索到的结果数?

select e from Entity e /* I need only 10 results for instance */

答案 1

你可以像这样尝试给出10个要显式获取的结果。

entityManager.createQuery(JPQL_QUERY)
             .setParameter(arg0, arg1)
             .setMaxResults(10)
             .getResultList();

如果后端支持,它将自动在后端创建本机查询以检索特定数量的结果,否则在获取所有结果后在内存中执行限制。


答案 2

您也可以使用 setFirstResult() 设置偏移量

em.createNamedQuery("Entity.list")
  .setFirstResult(startPosition)
  .setMaxResults(length);

推荐