我使用的是spring-batch,在我的情况下,我需要使用悲观锁。
因为文档中说pagingitemeader将使用一个单独的事务来缓存项目,所以这次我选择在processor.At中锁定项目,所以我使用了JdbcPagingItemReader和ItemWriter。
但是当我转向使用MybatisPagingItemReader和MybatisBatchItemWriter时,我发现reader事务后的第一个块提交与reader在同一事务中!
例如,这里有10个要处理的项目,块大小是2,页面大小是5。在spring-batch中,在第二次提交之后,它将执行第二个read.In。在这种情况下,1,2,5,6项将被提交到与pics.How中所示的read相同的事务中。在此处输入图像描述
1:https://i.stack.imgur.com/don0M.jpg image description here
发布于 2021-04-14 09:08:46
好吧,我终于发现图片中的行为是由mybatis sqlSession.Thank u引起的,感谢你的帮助。
https://stackoverflow.com/questions/67070478
复制相似问题