1

目前,我正在使用 Spring 3.2.0、Hibernate 4.2.0.CR1 和 Oracle 10g 使用 Web 应用程序。

Oracle 表中的主键是序列生成的,并且它们都已映射Long到 Hibernate 实体中的类型。在实践中,几乎不可能有一个没有分页的系统。

我通常使用以下方法从数据库表中的行列表中检索子列表。

sessionFactory.getCurrentSession()
              .createQuery("from Entity order by entityId desc")
              .setFirstResult(currentPage)
              .setMaxResults(pageSize)
              .list();

和方法只接受一个类型作为它们setFirstResult()的参数。当然,该类型对于该方法来说已经绰绰有余了,但是如果某人在表中有很多行并且他/她需要检索一个子列表,比如说从 Beyond 开始的 50 行,该怎么办?setMaxResults()intintsetMaxResults()Integer.MAX_VALUE

假设给定表中有多个2,147,483,647行。当然,我可以理解给定的值2,147,483,647是一个很大的数字,但是Long如果setFirstResult()方法只接受int? 即使使用可以接受以外的标准 API,我也看不到此方法的任何重载版本int,同样在现实中很少看到没有分页的系统。

4

0 回答 0