配置文件:
<bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
.。。。
</bean>
<bean id="transactionManager1"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager1" />
<bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource1" />
</bean>
<bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
.。。。
</bean>
<bean id="transactionManager2"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource2" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager2" />
<bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource2" />
</bean>
java代码:
case1
①class1:
@Transactional(value = "transactionManager1", rollbackFor=Exception.class)
public int insert1() {
insertDB1();
class2.insert2();
}
②class2:
@Transactional(value = "transactionManager2", rollbackFor=Exception.class)
public int insert2() {
insertDB2();
throw exception();
}
结果①②都能回滚
case2
①class1:
@Transactional(value = "transactionManager1", rollbackFor=Exception.class)
public int insert1() {
insertDB1();
class2.insert2();
throw exception();
}
②class2:
@Transactional(value = "transactionManager2", rollbackFor=Exception.class)
public int insert2() {
insertDB2();
}
结果①回滚②提交
0 件のコメント:
コメントを投稿