事务传播特性
作用:规定了如果有新的事务应该被启动还是被挂起,或者方法是否需要在事务中运行。
以下七种传播特性:
- PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
- PROPAGATION_REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。
- PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
- PROPAGATION_NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起。
- PROPAGATION_NEVER:以非事务方式运行,如果当前存在事务,则抛出异常。
- PROPAGATION_MANDATORY:(adj.托管的)如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
- PROPAGATION_NESTED:(adj. 嵌套的,内装的)如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行,新增Savepoint点,与当前事务同步提交或回滚。如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。