0 0

spring+ibatis 多数据源事务不回滚0

以下代码我的事务配置:

<!-- 事务拦截1 -->  
<bean id="transactionInterceptorProduct" class="org.springframework.transaction.interceptor.TransactionInterceptor">  
    <property name="transactionManager" ref="transactionManagerProduct" />  
    <property name="transactionAttributes">  
    <props>  
        <prop key="save">PROPAGATION_REQUIRED</prop>  
        <prop key="insert*">PROPAGATION_REQUIRED</prop>  
        <prop key="delete*">PROPAGATION_REQUIRED</prop>  
        <prop key="update*">PROPAGATION_REQUIRED</prop>  
        <prop key="do*">PROPAGATION_REQUIRED</prop>  
    </props>  
    </property>  
</bean>  
<!-- 事务拦截2 -->  
 <bean id="transactionInterceptorBbs" class="org.springframework.transaction.interceptor.TransactionInterceptor">  
     <property name="transactionManager" ref="transactionManagerBbs" />  
     <property name="transactionAttributes">  
     <props>  
         <prop key="save">PROPAGATION_REQUIRED</prop>  
         <prop key="insert*">PROPAGATION_REQUIRED</prop>  
         <prop key="delete*">PROPAGATION_REQUIRED</prop>  
         <prop key="update*">PROPAGATION_REQUIRED</prop>  
         <prop key="do*">PROPAGATION_REQUIRED</prop>  
     </props>  
     </property>  
 </bean>     

<!--  管理你连接的地方-->  
<bean id="autoProxyCreator" abstract="true" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
    <property name="beanNames"> 
    <list> 
     <value>holdProductManager</value>  
     <value>tipManager</value>  
    </list>
    </property>  
    <property name="interceptorNames">  
        <list>  
        <value>transactionInterceptorProduct</value>  
        <value>transactionInterceptorBbs</value>  
        </list>  
    </property>  
</bean>  

 

我在 holdProductManager bean 中的一个方法里面报出异常,发现事务不回滚。代码如下:

@Override
public void doTranTest() throws Exception{
	HoldProduct obj = new HoldProduct();
	obj.setProductCname("多数据的配置测试");
	obj.setProductCode("sldke sdei 123");
	holdProductDao.save(obj);
	tipDao.get(1L); 
	if (1 ==1) {
		throw new RuntimeException("2356");
	}
}

 

请问spring+ibatis 的多数据事务,应该怎么样配置呢 ?

 

2012年12月16日 10:02

2个答案 按时间排序 按投票排序

0 0

跨数据源的事务要用jta事务的,不然无法回滚

2012年12月16日 12:13
0 0

@Override
public void doTranTest() throws Exception{
HoldProduct obj = new HoldProduct();
obj.setProductCname("多数据的配置测试");
obj.setProductCode("sldke sdei 123");
holdProductDao.save(obj);
tipDao.get(1L);
if (1 ==1) {
throw new RuntimeException("2356");
}
}

你这段测试代码需要加事务的, 否则这段代码是无事物的。异常对之前的操作无影响

具体配置请参考
http://jinnianshilongnian.iteye.com/blog/1469524

2012年12月16日 10:16

相关推荐

    Spring+ibatis 保留ibatis事务的配置

    给定的XML配置文件展示了如何在Spring中配置ibatis数据源以及ibatis事务管理器。首先,注释掉的`BasicDataSource`部分是用来配置数据源的,这里没有启用,而是选择了使用JNDI数据源。实际生产环境中,通常会使用...

    Spring + Ibatis 与mysql集群集成

    3. **Ibatis配置**:Ibatis的配置文件中,需要指定数据源为Spring管理的数据源,这样Ibatis就能通过Spring获取数据库连接。同时,定义SQL映射文件,编写对应的XML映射语句。 4. **事务管理**:由于MySQL集群支持...

    Spring+iBatis+JOTM实现JTA事务

    在分布式系统中,JTA(Java Transaction API)事务管理用于处理跨越多个数据源的事务,如数据库、消息队列等。JOTM(Java Open Transaction Manager)是一个开源的JTA事务管理器,可以在非J2EE环境下提供分布式事务...

    spring+ibatis声明式事务Demo_

    在Spring中,事务管理器会与数据源配合,处理事务的开始、提交和回滚。 3. **@Transactional注解**:在业务服务类的方法上添加此注解,即可启用声明式事务管理。注解可以指定传播行为(如REQUIRED、REQUIRES_NEW等...

    搭建spring mvc+spring+ibatis所需所有jar包

    1. **配置**:在Spring配置文件中配置数据源、SqlSessionFactory,以及MapperScannerConfigurer扫描Mapper接口。 2. **Spring MVC与iBatis结合**:创建一个Service层,通过@Autowired注入Mapper接口,Service层调用...

    spring+ibatis声明式事务Demo

    当我们谈论"spring+ibatis声明式事务Demo"时,我们关注的是如何在Spring框架中利用iBatis实现声明式事务管理。 声明式事务管理是Spring框架提供的一种方便、高效的方式,使得开发者无需手动控制事务的开始、提交、...

    Spring+iBatis配置[归类].pdf

    - 事务管理器(TransactionManager)配置,如`PlatformTransactionManager`,它与iBatis的数据源配置结合,控制事务的开始、提交和回滚。 - 数据源(DataSource)配置,定义如何连接到数据库。 - iBatis的...

    spring+ibatis的jpetstore实例工程,包含完整源代码和jar包

    6. **集成过程**:Spring与iBatis的集成涉及到配置文件的设置,包括在Spring配置文件中声明iBatis的SqlSessionFactoryBean,以及在iBatis配置文件中配置数据源和事务管理器。此外,还需要编写Java DAO接口和对应的...

    Spring+Struts+ibatis下配置数据读写分离及事务(一)

    这包括在Spring配置文件中定义数据源、事务管理器以及对应的bean;在Struts的配置文件中定义Action并指定其事务属性;最后,在iBATIS的配置中设置数据源,并编写针对读库和写库的SQL映射文件。 值得注意的是,数据...

    spring+ibatis

    配置数据源(DataSource),这是Spring管理数据库连接的方式。可以使用Apache的DBCP或C3P0等连接池实现,或者使用Spring的AbstractDataSource类。 4. **SqlSessionFactory配置**: 创建SqlSessionFactoryBean,它...

    Spring+Struts+iBATIS整合

    整合Spring、Struts和iBATIS,首先需要配置Spring作为整个应用的上下文容器,负责管理所有组件,包括Struts的Action和iBATIS的数据源。在Spring配置文件中,我们需要定义Bean来表示Action和DAO(数据访问对象),并...

    Spring + iBATIS

    iBATIS 的配置文件(mybatis-config.xml)则包含了数据源、映射文件等信息。 4. **Mapper 接口与 XML 映射文件**:在 iBATIS 中,我们通常定义一个 Mapper 接口,这个接口的方法对应 SQL 语句,然后在对应的 XML ...

    spring ibatis 配置(包括事务管理)

    通过以上步骤,我们就完成了Spring与iBatis的集成配置,包括了数据源、SqlSessionFactory、SqlSessionTemplate、Mapper接口的扫描以及事务管理。这样,我们就可以在Spring的管理下,利用iBatis进行高效、灵活的数据...

    java+ibatis实例教程

    3. **配置 MyBatis**:在实际项目中,你需要配置 MyBatis 的核心配置文件(mybatis-config.xml),包含数据源、事务管理器和环境等信息。同时,也需要创建映射文件(Mapper XML)来定义 SQL 语句。 4. **Mapper ...

    SPRING IBATIS 保留IBATIS事务的配置方式

    最值得关注的部分是iBatis的事务管理配置,这里明确指定了事务管理器的类型为`JDBC`,并且定义了数据源的具体参数。 ```xml ``` 这样的配置意味着iBatis将使用JDBC的方式进行事务管理,即所有的事务...

    spring与ibatis整合集成实例

    Spring 配置文件中定义数据源、事务管理器以及 SqlSessionFactoryBean;iBATIS 配置文件中则包含数据源信息、SQL 映射文件路径等。 4. **MyBatis-Spring 桥接库**:为了简化整合过程,可以使用 MyBatis-Spring 这个...

    spring整合ibatis

    6. **事务管理**:Spring提供了声明式事务管理,我们可以在方法上添加@Transactional注解,让Spring自动处理事务的开启、提交和回滚。 7. **使用Service和DAO**:在Spring的业务逻辑层Service中,通过@Autowired...

    spring和ibatis整合

    2. **配置文件**:在整合过程中,需要创建XML配置文件,如`sqlMapConfig.xml`来配置iBatis的基本设置,包括数据源、事务管理器等。同时,还需要在Spring的配置文件(如`applicationContext.xml`)中声明...

    ibatis_spring源代码

    综上所述,`iBatis_Spring`源代码的学习涵盖了数据库连接、SQL映射、事务处理、依赖注入等多个核心概念,通过深入理解这些知识点,开发者可以更好地掌握企业级Java应用的开发技巧。在实际项目中,这样的整合可以带来...

Global site tag (gtag.js) - Google Analytics