从数据库- JPA检索特定数量的记录(提高性能)



我在网上找到了几个解决方案,但在性能方面,这些都不是我所寻找的。我有一个记录超过10,000,000条记录的表。我需要只读取最近的150个结果

query.select(trailRoot).distinct(Boolean.TRUE)
    .where(buildPredicateForAuditTrail(auditTrailCriteria, criteriaBuilder, trailRoot));
final TypedQuery<AuditTrail> typedQuery = entityManager.createQuery(query);
return typedQuery.setFirstResult(auditTrailCriteria.calculateFirstResultIndex())
    .setMaxResults(150).getResultList();

这段代码完成了这项工作。但是它仍然从db 读取所有的10,000,000条记录,这使得web服务器过载。我可以像

那样简单地限制查询吗?
SELECT *FROM Persons LIMIT 5;

是否有一种方法来限制查询本身的结果?如有任何帮助,不胜感激。

谢谢。

为什么不能将第一个结果设置为特定的偏移量?

query.setFirstResult(firstResult);
query.setMaxResults(maxResults);

看一下lazycardatmodel .java http://www.primefaces.org/showcase/ui/data/datatable/lazy.xhtml

最新更新