假设我有一个从数据库加载的对象流(使用Spring Data JPA,如下所示)
public interface MyJpaRepository extends JpaRepository {
Stream findAll();
}
假设有数百万个Foo对象存储在我的数据库中,使用的GB比我的最大堆内存大小大得多。
我期望通过如下方式使用流,当从数据库加载更多的对象时,JVM可以通过垃圾收集处理过的对象来正确地处理它的堆内存:
try (Stream fooStream =
myJpaRepository.findAll()) {
fooStream.forEach(entity -> logger.info("Hello !"));
}
但实际上,这段代码会抛出内存不足异常。
谢谢你