Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate findByCriteria会导致Java堆内存问题吗?_Java_Hibernate_Hibernate Criteria - Fatal编程技术网

Hibernate findByCriteria会导致Java堆内存问题吗?

Hibernate findByCriteria会导致Java堆内存问题吗?,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,我对冬眠知之甚少。我调用findByCriteria(DetachedCriteria)方法,但我注意到它返回一个列表。我担心的是,当数据库返回非常大的结果时,它是否会导致Java堆内存问题。在我的下一个代码中,我将遍历这个返回的列表,并在reach记录上做一些事情。我注意到findByCriteria(DetachedCriteria)在内部调用findByCriteria(criteria,-1,-1)。 有人能给我一些启发吗?这就是为什么人类为分页创造了一些东西。检查和除了分页之外,限制显

我对冬眠知之甚少。我调用findByCriteria(DetachedCriteria)方法,但我注意到它返回一个列表。我担心的是,当数据库返回非常大的结果时,它是否会导致Java堆内存问题。在我的下一个代码中,我将遍历这个返回的列表,并在reach记录上做一些事情。我注意到findByCriteria(DetachedCriteria)在内部调用findByCriteria(criteria,-1,-1)。
有人能给我一些启发吗?

这就是为什么人类为分页创造了一些东西。检查和

除了分页之外,限制显示的结果将避免大量数据进入java堆空间。根据我个人的经验,我可以通过限制显示的字段来消除内存问题。

您所说的数据集的大小是多少?你注意到它慢了吗?我们谈论的是什么样的记忆?问题太多了。我有一个表,它有80多列,我需要从数据库中获取的记录总数是200000或更多。我的JavaMax堆内存限制在512M。我已经阅读了这些文档,因为我在问题中提到了第二种方法。我不明白的是,如果我的总记录数为1000,而我将maxresults设置为500,那么如何获取其余的500?您可以使用
setFirstResult
设置要查询的开始记录。这两个api都相当于SQLI中的
limit
offset
概念,在我的项目中有许多地方调用findByCriteria(criteriaObj)方法。如果我在这段代码中同时调用setFirstResult和setMaxResults,它会影响调用findByCriteria(criteriaObj)的其他代码吗。换句话说,所有其他方法将使用相同的firstresult和maxresults值?我不想这样。你试过使用它们,看看会发生什么吗?