我正在使用hibernate 4.3.10,java 1.8和eclipse neon。 我一直在尝试在我的代码中执行以下语句。但java.lang.OutOfMemoryError:在选择20万行时在休眠时Java堆空间
java.lang.OutOfMemoryError: Java heap space
在几分钟后第二行抛出。
Query query = mySqlSession.createSQLQuery("select * from hops where processed is null");
List<Object[]> lis=query.list();
问题是此查询返回约200k结果导致问题。我推荐 How to deal with "java.lang.OutOfMemoryError: Java heap space" error (64MB heap size)
从上面的链接阅读解决方案后,我将内存更改为2 GB。仍然存在问题。 有什么建议吗?
是否有可能不将200k记录存入内存? – Pijotrek
请参阅https://stackoverflow.com/questions/33019211/do-query-loads-all-the-data-in-memory – rmlan
必须更改算法以仅使用当前记录(当前:将所有记录存入RAM)。顺便说一句,为什么使用hibertate进行经典查询? –