org.hibernate.Query中的setMaxResults和setFetchSize有什么区别?
org.hibernate.Query中的setMaxResults
和setFetchSize
什么区别? 我只是不能得到它=)
setMaxResults与SQL中的LIMIT相同 – 您正在设置要返回的最大行数 。 当然这是一个非常常见的用例。
setFetchSize是关于优化的 ,它可以改变Hibernate如何将结果发送给调用者(例如:以不同大小的块缓冲)。 所有数据库驱动程序都不实现setFetchSize。
setMaxResults
限制了查询结果的数量。
setFetchSize
通知jdbc驱动程序在一个块中返回多less行,用于大型查询。 假设你想要1000行。 如果将抓取大小设置为100,那么数据库将返回100,然后当您需要更多数据时返回100,依此类推。 如果您的驱动程序不支持setFetchSize
不会执行任何操作。
例如,该表有100个logging。
请find以下几点
criteria.setMaxResults(25); :它只能从100条logging中获取25条logging。
criteria.setFetchSize(20); :每次读取20条logging,直到从表中读取100条logging。