我有一个使用Hibernate
和MySQL
. 在一个页面上,我有一个搜索表单,在提交时我创建了一个 HQLQuery
来获取结果。
我使用.setFirstResult()
and.setMaxResults()
进行分页。这工作正常,但不是当我的结果集包含很多记录时......我认为 .setMaxResults() 会在实际的 SQL 查询中使用限制,但它似乎没有。所以它将整个结果加载到内存中,然后才使用我在 .setMaxResults() 中设置的值,这会导致内存问题。
这是它的工作原理,还是我做错了什么?
如果是这样,这对我来说是不可用的。
ps: 使用 Criteria API 它确实可以工作,但是我在创建标准时还有一些其他限制。这就是为什么我尝试改用 HQL,但我现在面临这个问题。
那么我的观察是否正确?还有其他解决方案吗?