有什么方法可以在 Hibernate 中处理长查询结果?如果我想绘制包含数百万条记录的表格并允许用户浏览它怎么办?
目标不是当时将所有数据传输给客户端并处理当前位置。
您可以尝试使用 Hibernate ScrollableResults,我引用:
一个结果迭代器,允许在结果中以任意增量移动。Query / ScrollableResults 模式与 JDBC PreparedStatement/ ResultSet 模式非常相似,并且该接口的方法语义与 ResultSet 上类似名称的方法相似。
您可以在 Query 对象中FirstResult
使用简单的机制。MaxResults
query.setFirstResult(5);
query.setMaxResults(5);
以上5
将从第五条记录中获取记录。
您可以使用ScrollableResults但对于较大的结果,它会比上面的要慢。
要改进对大型数据集的查询,请使用键集分页并尽可能避免偏移分页,因为使用偏移量需要读取所有数据,而使用键集分页(过滤器)会减少数据集(改进可能很重要)。