0

我有一个包含 1000 条记录的表。

我需要一次提取 100 条记录,所以我setFetchSize在休眠条件中使用如下(Deal是实体对象)

 List<Deal> dealList= sess.createCriteria(Deal.class).setFetchSize(100).list();

但是,经过上述查询后,我将dealList尺寸打印为

System.out.println("no. of deals "+dealList.size());

它给出了 1000 条记录而不是 100 条记录。

我错过了什么吗?

4

3 回答 3

3

您将需要setMaxResults()

获取大小是 JDBC 优化,而不是对执行查询的限制。有关和的更多信息,请参阅此线程,以及有关两者如何为您协同工作的此线程。setFetchSize()setMaxSize()

于 2012-11-06T13:15:50.417 回答
0

用于setMaxResults(100)将获取的行数限制为 100

于 2012-11-07T06:41:45.697 回答
0

使用setMaxResultswithsetFirstResult获取下一条记录。

更新

来自java.sql.Statement#setFetchSizejavadoc:

ResultSet当this 生成的对象需要更多行时,向 JDBC 驱动程序提供有关应从数据库中获取的行数的提示 Statement。如果指定的值为零,则忽略提示。默认值为零。

于 2012-11-06T13:15:10.873 回答