0

我有一个使用 JSF 2 开发 Web 应用程序的 JPA 实体(EclipseLink)。假设我有这个:

private String table;
    @OneToMany(mappedBy = "NodeTypeID")
    private Collection<NodeEntity> nodeEntityCollection;

该集合变得非常大,因为当然,数据库表中的行很多。我不会在网络中显示所有这些实体,因为......你不能这样做,对于网页来说太多了。所以我将集合限制为 150 个对象。

在 +1,000 个实体已经在内存中之后,我对其进行了限制,所以我想制作所有这些实例的过程必须很慢。所以,我只想知道,在这种情况下你会怎么做?只需查询我想要的 150 个实体?有注释吗?让那个过程像这样是好的做法吗?

4

1 回答 1

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)

于 2013-10-03T20:35:08.167 回答