Spring中的事务传播PROPAGATION

Spring在TransactionDefinition接口中定义了7种PROPAGATION行为,规定了事务方法如何进行传播的:

1、PROPAGATION_REQUIRED:最常见的选择。如果当前没有事务,就创建一个新的事务;如果存在事务,就加入当前事务。
2、PROPAGATION_SUPPORTS:支持当前事务,如果当前无事务,就以非事务的方式执行。
3、PROPAGATION_MANDATORY:支持当前事务,如果当前无事务,就抛出异常。
4、PROPAGATION_REQUIRES_NEW:新建事务,如果当前有事务,将当前事务挂起。
5、PROPAGATION_NOT_SUPPOTED:以非事务的方式执行,如果当前有事务,将当前事务挂起。
6、PROPAGATION_NEVER:以非事务的方式执行,如果当前有事务,则抛出异常。
7、PROPAGATION_NESTED:如果当前有事务,则在当前事务中以嵌套方式执行,如果当前没有事务,就创建一个新的事务。

猜你喜欢

转载自xwhuang.iteye.com/blog/2319846