

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 spring事务传播属性详解(值得收藏)、传播属性介绍如果当前没有事务,就新建个事务,如果已经存在个事务中,加到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTSPROPAGATION_MANDATORYPROPAGATION_REQUIRES_NEWPROPAGATION_NEVERPROPAGATION_NESTED以事务式执,如果当前存在事务,则抛出异常。如果当前存在事务,则在嵌套事务内执。如果当前没有事务,则执与PROPAGATION_REQUIRED类似的操作。、建表sql) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE T
2、ABLE pe_user (id varchar(40) NOT NULL COMMENT ID,username varchar(255) NOT NULL COMMENT 户名称,password varchar(255) DEFAULT NULL COMMENT 密码,PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;三、代码演1.REQUIREDServicepublic class UserServiceImpl ResourceSysLogServiceImpl sysLogService;Transactionalpub
3、lic void add() sysLogMapper.insertLog(add,new Date();测试法:SpringBootTestTestuserService.add();原始数据:启动志:结果: 总结:add()和 insertLog()在同个事务,当前事务就是add()上的事务,因为add上有事务,所以insertLog()的就是add事务,当add抛异常,insertLog()同样回滚。2.SUPPORTSInteger.parseInt(18.239563);Transactional(propagation = Propagation.SUPPORTS)public v
4、oid insertLog()sysLogMapper.insertLog(add,new Date();原始数据:Propagation.REQUIRED 中启动志:结果: 总结:add()上没有事务,insertLog()也就没有事务,所以即使add即使抛异常,insertLog和add也都不会回滚。3.MANDATORYsysLogMapper.insertLog(add,new Date();初始数据:SUPPORTS的数据启动志:结果:总结:add()上没有事务,insertLog()也就没有事务,所以insertLog会抛出异常,程序直接结束,所以没有数据插。4.REQUIRES_
5、NEW userMapper.insertUser(12321432431,dong,123);Integer.parseInt(18.239563);Transactional(propagation = Propagation.REQUIRES_NEW)sysLogMapper.insertLog(add,new Date();初始数据:MANDATORY的结果数据启动志:结果:总结:add()上有事务,抛异常事务回滚,insertLog()此时和add不是个事务,所以数据插成功。5.NOT_SUPPORTED userMapper.insertUser(12321432431,dong,
6、123);/Integer.parseInt(18.239563);Transactional(propagation = Propagation.NOT_SUPPORTED)sysLogMapper.insertLog(add,new Date();int ss = 1 / 0;初始数据:REQUIRES_NEW结果启动志:结果:总结:add()上有事务,insertLog()抛异常事务回滚,所以没有插,insertLog此时没有事务,计时报错,也不会回滚。6.NEVER userMapper.insertUser(12321432431,dong,123);/Integer.parseIn
7、t(18.239563);Transactional(propagation = Propagation.NEVER)sysLogMapper.insertLog(add,new Date();/int ss = 1 / 0;初始数据:NOT_SUPPORTED数据启动志:结果:总结:add()上有事务,insertLog()抛异常事务回滚,所以没有插,insertLog此时抛出异常,计时报错,事务回滚。7.1 当前事务 NESTEDpublic void add() Transactional(propagation = Propagation.NESTED)sysLogMapper.insertLog(add,new Date();/int ss = 1 / 0;初始数据:NEVER结果数据启动志: 结果:总结:add()上没有事务,insertLog()新建事务,add异常不回滚,insertLog也插正常。7.2 当前有事务Transactionalpublic void add() Transactional(propagation = Propagation.NESTED)public void insertLog()s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公车司机分流管理制度
- 劳动安全保护管理制度
- 单位预算业务管理制度
- 小区高端食堂管理制度
- 工厂饭堂日常管理制度
- 公司值班保洁管理制度
- 公文发文发文管理制度
- 养老机构遗产管理制度
- 剖宫产围手术管理制度
- 前沿研发中心管理制度
- GB/T 1689-1998硫化橡胶耐磨性能的测定(用阿克隆磨耗机)
- 病原微生物实验室生物安全管理手册
- 上消化道出血病人的观察与护理-课件
- 光缆测试报告
- 初中物理教育科学八年级下册第十一章 机械与功《功》教学设计
- 神经病学人卫版习题集题库
- 入网安评基线核查常用检查项
- (统编版小学语文教师)语文新课标新旧对比变化
- 达希纳(尼洛替尼)毒副反应及处理
- 【图文】SEW变频器设置参数说明
- 中班语言活动《伞》
评论
0/150
提交评论