Весной вы можете установить 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 config.
хорошо, что там
@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 transactionWithIsolationReadCommited = new DefaultTransactionAttribute(); transactionWithIsolationReadCommited.setIsolationLevel(TransactionAttribute.ISOLATION_READ_COMMITTED);
И затем используйте его в построителе шагов. Надеюсь, поможет!