事务问题

来源:4-3 开发新增图书控制器

慕的地5481427

2022-06-14 17:36:18

https://img.mukewang.com/climg/62a856140943cd1111840626.jpg

为什么这里基本都是Exception.class呢。没有用过

Propagation.REQUIRED
Propagation.SUPPORTS
Propagation.MANDATORY
Propagation.REQUIRES_NEW

这几个呢,尤其是REQUIRES_NEW,这个不是可以做到事务互不影响么

写回答

1回答

好帮手慕小尤

2022-06-14

同学你好,1、@Transactional(rollbackFor=Exception.class)表示如果类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。

2、@Transactional注解默认使用 Propagation.REQUIRED果不存在则创建一个新事务。具体使用哪个,同学结合项目需求与他们的作用选择使用即可。

    1)默认使用 Propagation.REQUIRED:支持当前事务,如果不存在则创建一个新事务;(支持当前事务即调用当前方法的地方声明的事务)

    2)Propagation.SUPPORTS:支持当前事务,如果不存在则非事务执行

    3)Propagation.MANDATORY:支持当前事务,如果不存在则抛出异常

    4)Propagation.REQUIRES_NEW:创建一个新事务,如果当前已存在事务则挂起该事务,使用新建的事务

    5)Propagation.NOT_SUPPORTED:非事务执行,如果当前已存在事务则暂停该事务

    6)Propagation.NEVER:非事务执行,如果当前已存在事务则抛出异常

    7)Propagation.NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行

 @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

祝学习愉快!

0

0 学习 · 9886 问题

查看课程