Эквивалент атрибутов транзакции Spring Batch Java Config

В пакете Spring вы можете установить транзакцию isolation а также propagation как это:

<job id="someJob" xmlns="http://www.springframework.org/schema/batch">
   <step id="readWriteDate">
      <tasklet transaction-manager="transactionManager">
         <transaction-attributes isolation="DEFAULT" propagation="REQUIRED" timeout="30"/>
         <chunk reader="dbItemReader" processor="dbItemProcessor" writer="dbItemWriter"
                commit-interval="2" />
      </tasklet>
   </step>
</job>

Я не могу найти эквивалент конфигурации Java.

2 ответа

Решение

Ну это там

@Configuration
public class StepWithTx {

    @Autowired
    private StepBuilderFactory steps;

    @Bean
    public Step step() throws Exception {
        return steps
                .get("CustomTxStep")
                .<String, String>chunk(10)
                .transactionAttribute(transactionAttribute...)
                .reader(reader...)
                .processor(processor...)
                .writer(writer...)
                .build();
    }
}

для реализации по умолчанию посмотрите на http://docs.spring.io/spring/docs/4.0.5.RELEASE/javadoc-api/org/springframework/transaction/interceptor/package-summary.html

Это как сказал Майкл Пралоу. Просто чтобы добавить конкретный пример, вы можете установить уровень изоляции, создав экземпляр атрибута транзакции по умолчанию:

  
DefaultTransactionAttribute TransactionsWithIsolationReadCommited = new DefaultTransactionAttribute();
transactionWithIsolationReadCommited.setIsolationLevel(TransactionAttribute.ISOLATION_READ_COMMITTED);

А затем используйте его в построителе шагов. Надеюсь, поможет!

Другие вопросы по тегам