论坛首页 Java企业应用论坛

SpringMVC多数据源的事务回滚问题

浏览 3118 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2016-09-29  
我在SpringMVC项目中连接两个数据库,配置如下:
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        ……
</bean>
<bean id="dataSource1" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        ……
</bean>


<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
……
</bean>
<bean id="sessionFactory1" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
……
</bean>


<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="transactionManager1" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory1"/>
</bean>


<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
<tx:annotation-driven transaction-manager="transactionManager1" proxy-target-class="true"/>

DataSource1数据库对应的代码如下:
Dao:
public void updateUseSession(Tshop tshop) {
        getHibernateTemplate().update(tshop);// 实际上最终还是调用session.update(tshop);方法
        // sessionFactoryForAmoeba.getCurrentSession().update(tshop);
}
Service:
@Transactional("transactionManager1")
public void updateUseSession(Tshop tshop) {
        ssbAmoebaDao.updateUseSession(tshop);
        throw new RuntimeException();
}
我的测试:
1. 如果事务注解配置为@Transactional("transactionManager1"),那么事务回滚了
2. 如果事务注解配置为@Transactional,即我故意配置错误,那么仍然回滚了!
我现在的问题就是:明明我的事务注解配置错了,为什么还是回滚了?
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics