Transactional事务,事务嵌套的时候,如果主事务出现问题,子事务执行不需要回滚怎么做?

如果调用的方法在不在同一个service当中,则只需要在子事务当中的方法上方添加注解即可

下方即是:这就话代表:重新开启一个新的事务

@Transactional(propagation = Propagation.REQUIRES_NEW)

如果调用的方法在同一个service的时候需要怎么处理

1、pom包引入
<!-- 引入aop,解决本地事务失效问题 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2、在启动类上添加
// 开启动态代理,使用aspectj作动态代理
@EnableAspectJAutoProxy(exposeProxy = true)

3、在你要开启新事物的方法上添加
@Transactional(propagation = Propagation.REQUIRES_NEW)

4、在主方法当中写  (OrderService就是你这个方法所在位置的接口类名称)
OrderService orderService = (OrderService) AopContext.currentProxy();

5、通过orderService调用你需要开启新事物的方法。
posted @ 2022-04-14 16:02  —阿峰—  阅读(589)  评论(0编辑  收藏  举报