在内存中拥有大量实体(如1500或更多)是一种好习惯吗?

时间:2013-10-03 20:28:24

标签: java jpa

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

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

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

我在+1,000个实体已经在内存之后限制它,所以我想所有这些实例的过程必须很慢。所以,我只是想知道,在这种情况下你会做什么?只需查询即可获得我想要的150个实体?那有注释吗?让这个过程就是这样的好习惯吗?

1 个答案:

答案 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)

相关问题