Java 正在获取在Hibernate中不工作的特定数量的记录
我有一个包含1000条记录的表 我需要一次提取100条记录,因此我在hibernate标准中使用了Java 正在获取在Hibernate中不工作的特定数量的记录,java,hibernate,Java,Hibernate,我有一个包含1000条记录的表 我需要一次提取100条记录,因此我在hibernate标准中使用了setFetchSize,如下所示(Deal是实体对象) 它给出了1000条记录,而不是100条记录 我遗漏了什么吗?使用setMaxResults和setFirstResult来获取下一条记录 更新 从java.sql.Statement#setFetchSizejavadoc: 给JDBC驱动程序一个提示,告诉它应该包含的行数 在需要更多行时从数据库中提取 ResultSet此语句生成的对象。
setFetchSize
,如下所示(Deal
是实体对象)
它给出了1000条记录,而不是100条记录
我遗漏了什么吗?使用
setMaxResults
和setFirstResult
来获取下一条记录
更新
从
java.sql.Statement#setFetchSize
javadoc:
给JDBC驱动程序一个提示,告诉它应该包含的行数
在需要更多行时从数据库中提取
ResultSet
此语句生成的对象。
如果指定的值为零,则忽略提示。
默认值为零
使用setMaxResults
和setFirstResult
获取下一条记录
更新
从java.sql.Statement#setFetchSize
javadoc:
给JDBC驱动程序一个提示,告诉它应该包含的行数
在需要更多行时从数据库中提取
ResultSet
此语句生成的对象。
如果指定的值为零,则忽略提示。
默认值为零
你将需要
Fetch size是一种JDBC优化,而不是对执行的查询的限制。有关setFetchSize()
和setMaxSize()
的更多信息,以及这两种方法如何为您协同工作。您将需要
Fetch size是一种JDBC优化,而不是对执行的查询的限制。有关setFetchSize()
和setMaxSize()
的更多信息,以及这两者如何协同工作,请参见。使用setMaxResults(100)
将获取的行数限制为100使用setMaxResults(100)
将获取的行数限制为100那么setFetchSize有什么用呢?可能是我对setFetchSize的理解有误吗?你能告诉我吗?那么setFetchSize有什么用呢?可能是我对setFetchSize的理解有误吗?你能告诉我吗?
List<Deal> dealList= sess.createCriteria(Deal.class).setFetchSize(100).list();
System.out.println("no. of deals "+dealList.size());