spring boot @Transactional的一个小坑

同一个类Service下,有两个函数 method_1和 method_2,且method_1内部调用了method_2,那么希望method_2内部意外时,数据库回滚,那么一定要在method_1上加上 @Transactional。

@Service
@Component
class MyClass{
    
    //method_1的@Transactional一定要加
    @Transactional(timeout=20,rollbackFor={Exception.class})
    public function method_1(){
        //1.组装要插入dao层的各类数据 
        //...
        //2.调用method_2
        this.method_2();
    }
    
    //method_2上的@Transactional可加可不加,加上了,让调用的人知道,这个是要走事务的
    @Transactional(timeout=20,rollbackFor={Exception.class})
    public function method_2(){
        //调用dao层
    }
}

另外,跨类调用时,貌似被调用的一定要加@Transactional,而调用者应该不用加,待确认。

转载于:https://www.cnblogs.com/zjfblog/p/11423897.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值