成都哪家做网站的最好,唯品会的网站建设,河南民基建设工程有限公司网站,手机ftp上传wordpress一、什么是Spring 事务的传播机制
传播机制解决了被事务修饰的方法互相调用时#xff0c;到底是创建两个不同的事务#xff0c;还是共用同一个事务的问题。
二、七种传播机制
首先介绍两个术语#xff1a;挂起#xff0c;嵌套和加入。
挂起#xff1a;将当前正在执行的…一、什么是Spring 事务的传播机制
传播机制解决了被事务修饰的方法互相调用时到底是创建两个不同的事务还是共用同一个事务的问题。
二、七种传播机制
首先介绍两个术语挂起嵌套和加入。
挂起将当前正在执行的事务暂停执行直接执行新创建的事务加入两者合二为一其中任何一个抛出异常两者执行的操作都回滚。嵌套临时工就算嵌套抛异常也只是嵌套回滚主体还是保持原样就行。 总结嵌套和加入都是共用同一个事务。 Spring事务传播机制包含以下7种默认机制就Propagation.REQUIRED。
Propagation.REQUIRED:默认的事务传播级别它表示如果当前存在事务则加入该事务如果当前没有事务则创健一个新的事务。Propagation.SUPPORTS:如果当前存在事务则加入该事务如果当前没有事务则以非事务的方式继续运行。Propagation…MANDATORY:(mandatory:强制性)如果当前存在事务则加入该事务如果当前没有事务则抛出异常。Propagation.REQUIRES_NEW:表示创健一个新的事务如果当前存在事务则把当前事务挂起。也就是说不管外部方法是否开启事务Propagation.REQUIRES_.NEW修饰的内部方法会新开启自己的事务且开启的事务相互独立互不干扰。Propagation.NOT_SUPPORTED:以非事务方式运行如果当前存在事务则把当前事务挂起Propagation.NEVER:以非事务方式运行如果当前存在事务则抛出异常。Propagation.NESTED:如果当前存在事务则创建一个事务作为当前事务的嵌套事务来运行如果当前没有事务则该取值等价于PROPAGATION_REQUIRED。
REQUIRED和NESTED的区别当调用方法存在事务时REQUIRED是合并两个事务为一个任何一个事务出现异常都全部回滚’NESTED是在调用的地方创建一个保存点如果被调用的事务出现异常则回滚保存掉调用事务继续执行只有当调用事务出现异常时才全部回滚。