首页 新闻 搜索 专区 学院

spring的@Async与@Transactional注解事务回滚

0
悬赏园豆:10 [待解决问题]
@Service
public class A {

    @Autowired
    private B b;
    
    @Transactional
    public void a() {
        // 数据库操作
        b.b();  
    }

}
@Service
public class B {
    
    @Async
    public void b() {
        int i = 1 / 0;
    }

}

如上伪代码,在A类的事务(@Transactional)方法a()中调用B类的异步(@Async)方法b(),若异步方法b()中抛异常了,请问事务方法a()如何才能回滚事务呢?谢谢!

eason1314的主页 eason1314 | 初学一级 | 园豆:186
提问于:2021-07-13 17:38
< >
分享
所有回答(1)
0

异步的方法报错了,想要本方法回滚

我的处理方式是等待,然后用消息通知来处理,不过这种方式并发高问题会很大,你可以把数据库操作放到异步去嘛

把异步作为业务的最后一步来处理

IT小苍 | 园豆:177 (初学一级) | 2021-07-15 16:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册