0

我使用spring-batch,在我的情况下我需要使用悲观锁。
由于文档说pagingitemeader将使用单独的事务以便可以缓存项目,因此我选择将项目锁定在处理器中。当时,我使用JdbcPagingItemReaderand ItemWriter
但是当我转用MybatisPagingItemReaderand时MybatisBatchItemWriter,发现reader事务后的第一个chunk commit与reader在同一个事务中!<br/>例如这里有10个要处理的项目,chunksize为2,pagesize为5。 spring-batch 在第二次提交后,将执行第二次读取。在这种情况下,1,2,5,6 项将在同一个事务中与 read 一起提交,如图所示。它是如何发生的?[输入图片描述在这里][1]

[1]: https://i.stack.imgur.com/don0M.jpg ![在此输入图片描述]( https://i.stack.imgur.com/GyeDT.jpg )

4

1 回答 1

0

好吧我终于发现图片中显示的行为是由mybatis sqlSession引起的。谢谢你的帮助

于 2021-04-14T01:08:46.220 回答