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

标签 java hibernate orm

请原谅新手问题。

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

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

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

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

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

最佳答案

most common cause of OutOfMemory errors when using Hibernate?

OOM 的一个常见原因是缺乏对 session 级缓存大小的控制(通过在 session 上调用flushclear)处理大型实体集合时,定期间隔(理想情况下与 JDBC 批处理大小相同)。请参阅Chapter 13. Batch processing了解更多相关信息。

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

关于java - 使用 Hibernate 时出现 OutOfMemory 错误的最常见原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782516/

相关文章:

java.lang.ang.NoClassDefFoundError : org/hibernate/util/DTDEntityResolver 错误

java - JsonIdentityInfo 用于 hibernate 映射

mysql - 我怎样才能将这个原始查询转换为sequelize ORM

java - 如何在android中找到屏幕的高度和宽度

java - weblogic 上的 Hibernate/JPA 继承问题

sql - ORM或有效处理带有订单列的SQL表的东西

symfony - 从 ODM(文档、MongoDB)中引用具有多对多关系的 ORM(实体)

java - 对 AWS Spring Boot 配置文件进行单元测试 - 可能吗?

java - 如何强制Rabbit MQ重新累积并发送消息?

java - 如何使用 JDK 1.8+ 的终端验证 YourKit 代理是否已正确安装在 macOS 上