0

我一直在我的桌面上使用 Hibernate + HSQLDB 为我的应用程序开发数据库适配器。由于遗留原因,ID 由应用程序生成为字符串。那时一切都很好。

现在,我们有一个预生产数据库,有超过一百万条记录。我不得不在 Hibernate 方面做一些改变(例如标识符太长),但没什么大不了的。

也就是说,直到我遇到这个问题。当我尝试在 pre-prod 服务器上启动我的应用程序时,Hibernate 开始进行大量查询,最终导致 OutOfMemoryError: Java heap space。增加堆最大值没有帮助。

我已禁用 C3PO 缓存设置并禁用 hibernate.hbm2ddl.auto。我不知道为什么要进行这些查询,也不知道如何禁用它们。

谁能帮我??????

4

1 回答 1

1

您告诉 Hibernate 急切地获取。因此,当您加载第一个对象时,Hibernate 也开始获取所有相关对象。

您必须将所有不必要的关系设置为fetch=LAZY

于 2009-10-19T08:36:18.470 回答