【发布时间】:2015-11-09 06:58:36
【问题描述】:
所有,我在使用 Spring Batch CompositeItemWriter 时遇到事务回滚问题。 Spring批处理的版本是2.2.7。
我的配置与此处的帖子相同:https://stackoverflow.com/questions/32432519/compositeitemwriter-doesnt-roll-back-in-spring-batch
<bean id="compositeItemWriter" class="org.springframework.batch.item.support.CompositeItemWriter">
<property name="delegates">
<list>
<ref bean="firstItemWriter"/>
<ref bean="secondItemWriter"/>
<ref bean="thirdItemWriter"/>
</list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${batch.jdbc.driver}" />
<property name="url" value="${batch.jdbc.url}" />
<property name="username" value="${batch.jdbc.user}" />
<property name="password" value="${batch.jdbc.password}" />
</bean>
当 thirdItemWriter 抛出异常时,以前的 writer 写入数据库的数据不会回滚。
不确定我错过了什么,但我的理解是复合项目编写者共享相同的事务,所有数据都应该在发生异常时回滚。
欢迎提出任何建议
【问题讨论】:
标签: java spring spring-data