2012-07-03 74 views
0

当我尝试使用openJPA撤回一个巨大的对象树时,我收到了内存不足的错误... 我该怎么做才能减轻这个...这是我的一些方法...OutofMemory异常与OpenJPA发生

我搜索一个实体... 这个实体应该有与之相关的子实体(这是esesntially同一实体)......所以,我包括它的孩子的名单...

private List<Organization> childOrgsTree = new ArrayList<Organization>(); 

因此,该实体是一个组织,我包括一个组织的列表与此实体...现在我有一个命名的本机查询ge对这个特定实体的每个孩子。我递归循环通过每个这些孩子,并找到该实体的每个孩子......做同样的命名本地查询调用可能成千上万的时间。递归构造子树对象。现在,这似乎工作,直到我遇到了一个内存异常...我有点流行,我怎么能解决这个小问题?我显然可以增加分配给这个进程的内存,但是我担心这会是一个bandaid。有任何想法吗?

回答

0

我有点失落如何解决这个小问题?

您有两个选择,在应用程序代码中占用更少的内存,或者增加JVM堆大小。

+0

嗯......也许,我一直在寻找这个链接http://openjpa.apache.org/builds/1.0.3/apache-openjpa-1.0.3/docs/manual/ref_guide_caching.html 和http: //openjpa.apache.org/builds/1.0.4/apache-openjpa-1.0.4/docs/manual/ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_ 我希望其中一人能给我我寻求的答案 – SoftwareSavant

+0

我没有线索如何不知道OpenJPA用户手册如何解决您将太多数据拖入JVM的问题? – Rick

+0

我真的希望有某种寻呼机制......但你的讽刺是无价的 – SoftwareSavant