我正在使用 hibernate 4.3.10、java 1.8 和 eclipse neon。 我一直在尝试在我的代码中执行以下语句。但是
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。好像还是有问题。 有什么建议吗?
最佳答案
根据您对行执行的操作,处理这种情况的正确方法是使用 LIMIT
一次仅检索部分结果。
然后您将循环查询并在行可用时处理结果集。
SELECT * FROM hops WHERE processed IS NULL LIMIT 10000
使用非本地查询时,请参阅@Stefano 的回答。
关于java.lang.OutOfMemoryError : Java heap space in hibernate while picking 200 thousand rows 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939367/