Эквивалент атрибутов транзакции 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);
А затем используйте его в построителе шагов. Надеюсь, поможет!