- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
事务传播级别探究
事务传播级别探究——怎样利用事务传播级别解决不同的业务需求什么是传播级别事务传播级别是事务本身的一个属性,决定当前事务执行期间及外部事务的关系。加入外部事务?挂起外部,重新开始新事务?不允许执行事务?在事务中如何被定义?TransactionDefinition接口中定义了其中事务传播级别public?interface?TransactionDefinition?{int?getPropagationBehavior();?int?getIsolationLevel();?int?getTimeout();?boolean?isReadOnly();}?七种事务传播级别PROPAGATION_REQUIREDPROPAGATION_REQUIRES_NEWPROPAGATION_MANDATORYPROPAGATION_NEVERPROPAGATION_SUPPORTSPROPAGATION_NOT_SUPPORTEDPROPAGATION_NESTEDPROPAGATION_REQUIRED如果外部已经存在事务,则加入外部事务,如果外部不存在事务,则新建一个事务。存在父事务加入父事务子事务不存在事务新建事务运行子事务举例说明methodA(){doSomethingA();methodB();//call methodB} //PROPAGATION_REQUIREDmethodB(){doSomethingB();} //PROPAGATION_REQUIREDPROPAGATION_REQUIRES_NEW不管外部是否有事务,都新建事务运行挂起恢复父事务新建事务子事务举例说明methodA(){doSomethingA();methodB();//call methodB} //PROPAGATION_REQUIREDmethodB(){doSomethingB();} //PROPAGATION_REQUIRES_NEWPROPAGATION_MANDATORY外部必须存在事务,加入外部事务执行,否则抛出异常存在父事务加入父事务子事务不存在父事务子事务举例说明methodA(){doSomethingA();methodB();//call methodB} //PROPAGATION_REQUIREDmethodB(){doSomethingB();} //PROPAGATION_MANDATORY?PROPAGATION_NEVER外部不能存在事务,如果存在事务,则抛出异常父事务子事务不存在父事务非事务方式运行举例说明methodA(){doSomethingA();methodB();//call methodB} //PROPAGATION_REQUIREDmethodB(){doSomethingB();} //PROPAGATION_NEVER?PROPAGATION_SUPPORTS外部存在事务则加入事务,不存在事务则以非事务的方式运行父事务加入父事务子事务不存在父事务非事务方式运行PROPAGATION_NOT_SUPPORTED总是以非事务方式运行,并挂起任何事务挂起恢复父事务非事务方式运行举例说明methodA(){doSomethingA();methodB();//call methodB} //PROPAGATION_REQUIREDmethodB(){doSomethingB();} //PROPAGATION_NOT_SUPPORTED?PROPAGATION_NESTED外部存在事务,嵌套执行。不存在事务,新建事务。注意及PROPAGATION_REQUIRED的区别!!savePoint父事务作为父事务的一部分执行子事务举例说明methodA(){doSomethingA();methodB();//call methodB} //PROPAGATION_REQUIREDmethodB(){doSomethingB();} //PROPAGATION_NESTED?推荐资料/topic/78674 详解spring事务属性/topic/35907 解惑spring嵌套事务请看eclipse代码演示红包项目中事务隔离级别的典型应用FAQ下期预告《事务隔离级别探究》读出的数据让你困惑?《log4J到底干了什么》你的日志是怎样被他处理的?日志如何精准定位?《带逻辑SQL写法的探究》如何不用java逻辑处理一次获取到你要的显示结果?首先感谢祖国!谢谢大家!
原创力文档


文档评论(0)