我有一个JPA实体(EclipseLink)使用JSF 2开发Web应用程序。假设我有这个:
private String table;
@OneToMany(mappedBy = "NodeTypeID")
private Collection<NodeEntity> nodeEntityCollection;
该集合变得非常大,因为当然,数据库中表格中的行很多。我没有在网络上显示所有这些实体,因为......你不能这样做,对网页来说太过分了。所以我将集合限制为150个对象。
我在+1,000个实体已经在内存之后限制它,所以我想所有这些实例的过程必须很慢。所以,我只是想知道,在这种情况下你会做什么?只需查询即可获得我想要的150个实体?那有注释吗?让这个过程就是这样的好习惯吗?
答案 0 :(得分:0)
在hibernate Criteria中,有几种处理分页的方法,即一次检索150行,客户端必须跟踪您正在查看的页码并将其发送到服务器。在服务器中存储1500行通常不会对持续时间很短。
setFirstResult(i*PAGE_SIZE)
setMaxResults(PAGE_SIZE)
参考:http://docs.jboss.org/hibernate/envers/3.6/javadocs/org/hibernate/Criteria.html#setMaxResults(int)