java.lang.OutOfMemoryError : Java heap space in hibernate while picking 200 thousand rows 错误

标签 java mysql eclipse hibernate

我正在使用 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/

相关文章:

java - 如何以编程方式/自动运行 OSGi 应用程序

java - 多部分实体 : Content-Length for InputStream

mysql - 重复字段 Hibernate + MySQL [Play 1.2.4]

java - Eclipse 无法启动

php - 正在寻找 PHP 书籍示例?

php - Codeigniter 无法更新一行的值

Eclipse 格式化程序分割长字符串

Java Hive 连接executeUpdate() 始终返回计数为零

java - 从 Apache TDB 加载数据集/模型的性能问题

java.net.UnknownHostException : Unable to resolve host "www.google.com"