由于我是Spring和Spring Batch的新手,所以我对使用Hibernate作为提供程序的Spring Batch和JPA有一个一般性的疑问。
请,我想知道何时(由EntityManager包装的)休眠会话被刷新?在读者,处理器和作家之间?或每个提交间隔?我们可以控制吗?
预先回答您的问题。
答案 0 :(得分:0)
据我所知,Spring事务在每个大块之后都已提交。
答案 1 :(得分:0)
请,我想知道什么时候刷新Hibernate会话(由EntityManager包装)?在读者,处理器和作家之间?或每个提交间隔?
在每个提交间隔写入大量项目后,将刷新该会话。有关更多详细信息,请查看:
HibernateItemWriter
:https://github.com/spring-projects/spring-batch/blob/master/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/HibernateItemWriter.java#L95
我们可以控制吗?
如果使用HibernateItemWriter
,则可以设置clearSession
标志来清除每个块之后的会话。