ilove581314 2016-09-28 13:01 采纳率: 0%
浏览 2543

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

我在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,即我故意配置错误,那么仍然回滚了!
我现在的问题就是:明明我的事务注解配置错了,为什么还是回滚了?
  • 写回答

1条回答 默认 最新

  • devmiao 2016-09-28 16:05
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用