传播定义
单个个体不存在传播行为
至少两个个体才存在传播行为
例
ServerA{
void methodA(){
ServerB.methodB();
}
}
7种传播行为
按照自己理解,分为以下几类
分类 | 事务 | 解释 |
---|---|---|
总是以有事务方式运行 | PROPAGATION_REQUIRED | 外层有事务加入外层事务,外层没事务新建一个事务 |
总是以有事务方式运行 | PROPAGATION_MANDATORY | 外层有事务加入事务,外层没事务抛出异常 |
总是以非事务方式运行 | PROPAGATION_NOT_SUPPORTED | 外层有事务挂起外层事务,以非事务运行 |
总是以非事务方式运行 | PROPAGATION_NEVER | 外层有事务,抛出异常 |
跟随外层事务状态 | PROPAGATION_SUPPORTS | 外层有事务加入外层事务,外层没事务以非事务运行 |
独立事务 | PROPAGATION_REQUIRES_NEW | 不管外层有没有事务,都新建自身独立事务,内外层事务回滚提交操作相互不影响,外层可以看内层的事务状态自行决定外层事务是否回滚 |
父子事务 | PROPAGATION_NESTED | 不管外层有没有事务,都新建自身独立事务,内层事务回滚提交不会影响外层事务,外层事务回滚提交会直接影响到内层事务 |