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