我正在使用Hibernate尝试对这些表进行简单的读取/更新。 这样做会不断抛出OutOfMemory错误(分配给JVM的1GB)。
这似乎不太可能,因为自然的记忆需要,更可能是我省略了冬眠的一些基本步骤。
我甚至已经用直接SQL替换了大部分实际的Hibernate对象访问(我知道这很荒谬)。但即使是getCurrentSession().createSQLQuery(…)也会导致OOM错误。
使用Hibernate时导致OutOfMemory错误的最常见原因是什么?
flush 和 clear 上 session 在处理大型实体集合时,以固定的时间间隔(理想情况下,与JDBC批处理大小相同的时间间隔)。看到了吗 Chapter 13. Batch processing
flush
clear
session
但你的案子没那么令人印象深刻。你到底在干什么?如何(即使是伪代码也可能有帮助)?