一:什么是事务的传播行为
事务的传播行为是指:当一个事务方法被另一个事务方法调用的时候,该如何运行,是自己创建一个新的事务还是说跟随别人的事务方法还是抛出异常。Spring框架为此提供了7种方式。也叫做事务的7种传播行为。
二:事务的7种传播行为都有哪些
{required
(要求)
、supports
(支持)
、mandatory
(强制)
、required_new
(新要求)
、not supported
(不支持)
、never
(从不)
、nested
(嵌套)
}
这几个翻译很重要!!! do you 知道吗???
PROPAGATION_REQUIRED:
如果当前有事务,那就加入到事务中去,如果当前没有事务,那就创建一个新的事务。同时这也是spring的默认事务传播行为。
(有就加入,没有就自己新建)
PROPAGATION_SUPPORTS:
支持当前事务,如果当前存在事务那就加入,如果当前不存在事务,那就以非事务的方式运行。
(有就加入,没有就不管)
PROPAGATION_MANDATORY:
强制添加事务,如果当前有事务那就添加到事务中去,如果当前没有事务那就抛出异常。
(有就加入,没有就抛出异常,必须要有事务)
PROPAGATION_REQUIRES_NEW:
创建新的事务,无论当前有没有事务,都创建一个新的事务。
(不管有没有,都新建一个事务)
PROPAGATION_NOT_SUPPORTED:
不支持事务,以非事务的方式执行,如果当前存在事务那就将事务挂起。
(不支持事务,如果有事务,那就给你挂起。自己就以非事务的方式执行)
PROPAGATION_NEVER:
坚决没有事务,以非事务的方式执行,如果当前存在事务那就抛出异常。
(坚决不要事务,有就抛出异常)
PROPAGATION_NESTED:
如果当前存在事务,那就嵌套到在当前事务内执行,如果当前没有事务那就按照
PROPAGATION_REQUIRED执行。
(当前有事务,就嵌套着执行,没有就看外层有没有事务,如果有就加入,外层也没有就新建)
下课!!!!!!!