日期:2014-05-18  浏览次数:20810 次

spring 注解配置事务不回滚
各位大神 
现在有一个需求

class AService {

 public void ma(){]
  mb();
  mc();
  mb();
  mc();
 }
 private void mb(){}
 private void mc(){}
}

需要:mb 和 mc 单独提交或回滚 互不影响  mb 或mc 要单独执行多次

这个该怎么配置
spring

------解决方案--------------------
设置AOP
<tx:method name="add*" propagation="REQUIRED" />

expression="execution(public * com.xxx.controller.*.*(..))" />
限制哪些方法加入事务回滚

------解决方案--------------------
是用NEW_REQUIRED
------解决方案--------------------
看一下事务广播设置
------解决方案--------------------
引用:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
       <tx:attributes>
            <tx:method name="save*" propagation="REQUIRES_NEW" />
       </tx:attributes>
</tx:advice>
<aop:config>
       <aop:pointcut id="interceptorPointCuts" expression="execution(public * com.test.service.*.*(..))" />
       <aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />
</aop:config>
----------------------------------------------
@Service
public class TestServiceImpl implements ITestService {

    @Resource
    private ITestDao routeDao;

    @Override
    public boolean load() {
         for (int i = 0 ;i < 10 ;i ++){