论坛首页 入门技术论坛

求助! spring 事务问题????

浏览 2801 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-01-08  
我想问的问题:

事务模板配置:
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="set*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

两个service配置:

<bean id="businesswordService" parent="txProxyTemplate">
<property name="target">
<bean class="com.spring.service.impl.SBusinesswordService" autowire="byName" />
</property>
</bean>

<bean id="searchService" parent="txProxyTemplate">
<property name="target">
<bean class="com.spring.service.impl.SearchService" autowire="byName" />
</property>
</bean>

我在searchService的一个方法里面
1、有自己的保存实体的操作
2、调用businesswordService里的一个方法保存实体

现在假如我在操作第二个功能的时候,报错了,怎么让第一个操作也回退?

希望大家能帮我,教我怎么配置这个事务?

谢谢了 
   发表时间:2007-01-08  
重写一个server方法,将你的两个操作放在里面!我觉得应该行,没试过!

建议将server独立,别相互调用!
0 请登录后投票
   发表时间:2007-01-08  
PROPAGATION_REQUIRED是指如果存在已有事务则使用当前事务,否则开启一个新事务,但是从目前的情况来看楼主的事务配置是正确的呀,就是说如果方法抛出异常,那么整个方法都要回滚的,因为这个方法只开启了一个事务,即businesswordService里的保存实体的方法并没有开启新事务,不过楼主没有把代码贴出来可能影响我们的判断结果,如果可以的话楼主把代码贴出来看看
0 请登录后投票
   发表时间:2007-01-08  
用spring的嵌套事务!
http://www.iteye.com/topic/35907
feiing的帖子讲得很详细!
0 请登录后投票
   发表时间:2007-01-08  
service方法不应该互相调用
0 请登录后投票
   发表时间:2007-01-08  
不好意思,现在有一个新的问题了?



一个BaseService和接口IBaseService

一个ExcelService(继承BaseService)和接口IExcelService(继承IBaseService)


实现的功能是:

从Excel文件导入数据,文件中的一行,插入数据库中一条记录

在ExcelService中有个方法

public void importData(Sheet sheet){
    int rows = sheet.getRows();
    for(int i=0;i<rows;i++){
        SUser user = new SUser();
        ....
        this.save(user);//这个方法是BaseService中实现的
    }
}

现在假如Excel文件中的中间某一行记录插入失败的话,我想整个事务回滚到调用前的状态?

现在我配置的事务不起作用,前面几条记录,已经成功插入到数据库了?

事务,太难了 !!!
0 请登录后投票
论坛首页 入门技术版

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