5

我现在知道 Spring-Batch 中不存在步骤间事务性之类的东西。我正在开发一个复杂的批处理作业,其中许多步骤在数据库中执行多个操作,并且每个步骤都与其他操作相关,因此每个步骤都属于同一个事务。我理解 Spring-Batch 范式的方式我一定会使用一步作业来实现事务性。是否有任何想法(或任何其他方式)在最近或将来的版本中具有某种工作级别的事务性?

Edit1:我在此链接中找到了第 6.3.1 点,这是一种连接多个处理器的方法,但这不能满足我目前的需求。

Edit2:这个其他链接建议我使用带有“@Transactional”注释的信封类的可能性,它将调用我的工作,因此应该有一个外部事务。

4

1 回答 1

3

最后我找到了一种方法来做到这一点。如上一版所述,您必须从事务方法调用作业:

@Transactional(传播=传播。需要)

将传播级别设置为此级别所需的非常重要。并将作业级别传播设置为“强制”,从而实现作业和步骤将其事务添加到当前事务。然而,正如 Michael Lange 所写,重要的是要考虑您正在管理的潜在卷大小,以避免超出限制的提交或回滚。

于 2012-09-21T07:51:48.987 回答