在休眠HQL列表中无法获取超过50000条记录

问题描述

| 我正在使用Struts休眠模式。 我有一个表有超过5万条记录,但是我无法在arraylist中获取该记录,当我尝试尝试时,它总是会激发我
java heap space exception- Out of memory
。 这是什么问题?     

解决方法

        您已经有了答案:您将需要更多的堆空间,更多的RAM或更少的记录。 您可以尝试增加可用于JVM的内存,但更好的问题是:为什么需要查询50K记录? 如果您使用Java处理它们,那么也许最好是对数据库进行计算的策略。 您的客户当然不需要一次查看5万条记录。 Google可能会获得数百万个匹配,但它们会对其进行优先排序,并一次向您发送前25个匹配。您的应用应效仿该策略。     ,        如果您只需要一次处理一个实体(例如,将所有实体写入导出文件),则可能需要查看如何在Hibernate中流式传输结果。 以下链接指向在NHibernate上下文中讨论此主题的文章,但该解决方案也应适用于Hibernate:http://ayende.com/blog/4548/nhibernate-streaming-large-result-sets     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...