事务的传播特性
事务的传播特性就是一个事务方法在调用另一个事务方法,导致事务传播行为,一般是一个大的事务中包含一个或者多个小的事务
一般这会考虑位于里层的事务是否接受外层事务的管理,这都是可以通过注解上的参数进行配置的,
使用方法
在@Transational中的propagation属性来配置
- 属性值propagation设置为propagation.REQUIRED的话说明这个方法需要事务,如果在被事务方法所调用的话就使用调用者的事务(共用一个事务),如果没有的话就自己创建事务;在这种情况下,如果主事务中的代码出现异常需要回滚的话,当前方法的操做需要回滚的。
- 属性值propagation设置为propagation.REQUIRESNEW的话是不管调用者有没有事务都会使用自己的的事务,而不会使用调用者的事务;由于这个是使用新的数事务,所以在发生异常的时候不会随着调用者的回滚而回滚