springboot事务回滚的几种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot事务回滚的几种方式相关的知识,希望对你有一定的参考价值。

参考技术A 1. 注解 @Transactional

    运行出现异常都会回滚

2. 异常捕获了也能回滚

@Transactional(rollbackFor = Exception.class)

3.  只想部分回滚

4. n个循环,一个循环回滚不影响其他循环

SpringBoot实现单元测试时回滚事务

pringBoot跑个单元测试只需要在测试类加两个注解就行了。

@RunWith(SpringRunner.class)
@SpringBootTest

然而这样的单元测试默认是提交事务的,一般的场景下都是要对事务进行回滚的。要支持回滚,只需要增加一个@Transactional注解即可。

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional

单独的@Transactional是回滚事务,在添加@Transactional的情况下如果要提交事务,只需要增加@Rollback(false):

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
@Rollback(false)

由于@Rollback可以用在方法上,所以一个测试类中,我们可以实现部分测试方法用@Rollback回滚事务,部分测试方法用@Rollback(false)来提交事务。

以上是关于springboot事务回滚的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

java业务层发生异常,但是数据却没有回滚的几种常见情况

java业务层发生异常,但是数据却没有回滚的几种常见情况

JPA中事务回滚的问题

Service中事务不能回滚的解决方式(转)

关于Spring事务回滚的问题

Spring 事务失效的几种场景