何时休眠一级缓存被清除?

时间:2019-05-29 22:36:35

标签: java spring hibernate

我对何时在Spring应用程序中清除(休眠会话?)的一级缓存感到困惑。我正在执行一项很长的工作,该工作会读取大量数据,并且有时该应用程序的内存不足。 我以为缓存的对象正在引起问题。

最初,我认为关闭事务将强制清除缓存,并且在@Transactional(propagation=REQUIRES_NEW)方法内从数据库中逐个读取条目将解决此问题。 但不幸的是,该应用程序仍会用完内存。 整个代码可能已经在事务内运行。休眠是否对多个事务或嵌套事务使用相同的缓存/会话? 我所有的选择都是通过spring存储库调用完成的(所以我没有直接使用实体管理器)。 是通过手动调用session.clear()或关闭最后一个父事务来清除缓存的唯一方法吗?

0 个答案:

没有答案