使用Hibernate时出现OutOfMemory错误的最常见原因是什么?

时间:2010-09-23 21:04:17

标签: java hibernate orm

原谅新手问题。

我的数据模型非常简单(两个表;一行200行,另一行10,000;两者之间自然连接)。

我正在使用Hibernate尝试对这些表进行简单的读取/更新。 这样做会导致OutOfMemory错误(分配给我的JVM的1GB)。

由于自然内存需求,这似乎不太可能,而且我更可能忽略了Hibernate中的一些基本步骤。

我甚至用直接SQL替换了大部分实际的Hibernate对象访问(荒谬,我知道)。但即使是getCurrentSession()。createSQLQuery(...)也会导致OOM错误。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

  

使用Hibernate时出现OutOfMemory错误的最常见原因是什么?

OOM的一个常见原因是缺乏对会话级缓存大小的控制(通过flush定期调用clearsession,理想情况下,处理大型实体集合时,与JDBC批处理大小相同的间隔。有关详情,请参阅Chapter 13. Batch processing

但你的情况并不那么令人印象深刻。你在做什么?以及如何(甚至伪代码可能有帮助)?