关于Spring事务传播行为的个人见解
目录:
- Spring事务传播行为(转载)
- 个人见解
Spring事务传播行为(转载)
个人见解
1、propagation_required: 需要、必要;儿子事务,没爸爸用自己的,有爸爸用爸爸的。
- 外部方法没有事务,则自己创建一个独立的事务
- 外部方法创建事务,则内部方法与外部方法是同一个事务
2、propagation_new: 新的;领养的儿子事务,不停爸爸的话,都用自己的事务,自己有问题还会影响到爸爸。
- 不管外部方法也没有事务,自己都会创建一个独立的新事务
- 外部事务异常不会回滚内部事务,内部事务异常会被外部事务捕捉到,并回滚事务。
3、propagation_nested: 嵌套;自己已经成家了,爸爸没来的时候自己就是爸爸,爸爸来了后自己就变成儿子了;当爸爸需要帮助时,自己会义不容辞的照顾,当自己有问题时,不会去麻烦爸爸和兄弟姐妹,而是自己处理掉。
- 外部方法没开启事务,则和required相同,自己创建一个独立的事务
- 外部方法开启了事务,则自己为外部方法的子事务;外部主事务回滚,自己也会回滚,但自己发生问题时可单独回滚,不影响主事务和其它子事务。