springmvc事物管理 总结------- 只支持事物间 不支持事务内---???

通过配置 设置 事务和保存点

<!--④ 通过aop 配置 提供事物增强,让service下的 bean的 所有方法 拥有事物 -->
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceMethod"
expression="execution(* com.ask.service..*(..))" 
/>
<aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />  
<!-- 事物起作用 -->
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="com.ask.service.impl.TagServiceImpl.updateById" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/>
<tx:method name="com.ask.service.impl.AnswerlistServiceImpl.updateById" propagation="REQUIRED" isolation="DEFAULT" no-rollback-for="Exception"/>
<!-- <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT" rollback-for="Exception"/> -->
</tx:attributes>
</tx:advice> 

 通过注解设置保存点

@Autowired
TagService tagService;
// @Transactional(propagation=Propagation.REQUIRED,noRollbackFor={Exception.class, RuntimeException.class}) //,rollbackFor={Exception.class, RuntimeException.class}
@Transactional(propagation=Propagation.REQUIRED,noRollbackFor=Exception.class) //,rollbackFor={Exception.class, RuntimeException.class}
// @Transactional(propagation=Propagation.REQUIRED) //,rollbackFor={Exception.class, RuntimeException.class}
    public int updateById(Map map) throws Exception{
answerListDao.updateById(map);
Map<String, Object> paras = new HashMap<String, Object>();
paras.put("title", "test001");
paras.put("id", "1");

之前有个问题一直困惑:

   就是在 controller 里 调用 两个不同的Service ,但是不想通过组合的方式进行,一直在想能不能把两个Service 置于同一个事务控制下,可能是我想多了o(╯□╰)o

我在controller 里面调用这俩Service 在 实现里加上了

@Transactional(propagation=Propagation.REQUIRED) 
为什么还是不能级联rollback



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值