文章字数:479,阅读全文大约需要1分钟
事务传播指的是一个事务被另一个事务调用时事务的进行方式
使用
1 | (propagation = Propagation.REQUIRED) |
七种级别
传播行为 | 含义 |
---|---|
PROPAGATION_REQUIRED | 当前方法必须在事务中运行。如果存在事务,在此事务中运行,否则启动新事务 |
PROPAGATION_SUPPORTS | 当前方法不需要事务上下文,但如果有就走当前事务中运行 |
PROPAGATION_MANDATORY | 方法必须在事务中运行,不存在当前事务,抛异常 |
PROPAGATION_REQUIRED_NEW | 当前方法必须运行在它自己的事务中,一个新的事物将被启动。如果存在当前事务,在改方法执行期间,当前事务会被挂起。如果使用JTATransactionManager 的话,则需要访问TransationManager |
PROPAGATION_NEVER | 表示当前方法不应该云心在事务上下文中。如果当前正有一个事物在运行,则抛异常 |
PROPAGATION_NESTED | 如果当前存在事务,方法嵌套在事务中运行。嵌套的事务可以独立于当前事务进行单独地提交或回滚。如果当前事务不存在,那么其行为与PROPAGATION_REQUIRED 一样 |