哪些场景事务不会回滚

Spring事务框架默认只在抛出RuntimeException和unchecked exceptions时才将事务回滚(Errors默认 - 事务回滚),但是抛出的Checked exceptions时将不进行事务回滚。

如果我们希望改变这个默认情况,可以按场景做设置:

  1. 抛出checked exceptions时也回滚事务:@Transactional(rollbackFor=Exception.class)
  2. 抛出unchecked excepitons时不回滚事务:@Transactional(notRollbackFor=RunTimeException.class)
  3. 不需要事务管理:@Transactional(propagation=Propagation.NOT_SUPPORTED)

注意:如果异常被try{}catch{}了,事务就不回滚了,如果想让事务回滚必须再往外抛try{}catch{throw Exception}

猜你喜欢

转载自blog.csdn.net/douxingpeng1/article/details/84881875