Tag: 数据处理

处理大量元素时,Hibernate内存不足exception

我正在尝试处理重量级元素(图像)的集合。 收集的大小在8000-50000条目之间变化。 但由于某些原因,在处理1800-1900条目之后,我的程序属于java.lang.OutOfMemoryError:Java堆空间。 在我理解每次调用session.getTransaction()时,commit()程序应该释放堆内存,但看起来它永远不会发生。 我做错了什么? 这是代码: private static void loadImages( LoadStrategy loadStrategy ) throws IOException { log.info( “Loading images for: ” + loadStrategy.getPageType() ); Session session = sessionFactory.openSession(); session.setFlushMode( FlushMode.COMMIT ); Query query = session.createQuery( “from PageRaw where pageType = :pageType and pageStatus = :pageStatus and sessionId = 1” ); query.setString( “pageStatus”, PageStatus.SUCCESS.name() ); query.setString( […]