博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
事务问题
阅读量:6588 次
发布时间:2019-06-24

本文共 691 字,大约阅读时间需要 2 分钟。

1.controller中只允许有一个sevice调用一个方法,即主方法

2.主方法对应的sevice为主service,主service应该调用具体实现业务逻辑的子service,以使事务切面生效
3.主方法无事务标签时,
a.调用具体子service中的方法(必须加事务),若该方法事务标签为REQUIRES_NEW或者REQUIRED,
则该方法为单独的事务,有异常抛出时,事务会回滚。
b.如果调用主方法中的方法,
若该方法没有加事务标签,则走数据库事务(如果数据库事务时默认自动提交,则立刻入库)
//若该方法有加事务标签,所加事务标签完全不起作用,仍然走数据库事务//!

4.主方法有事务标签时,主service中的所有非主方法都跟主方法同属一个事务,非主方法所加事务标签,都不起作用

都跟主方法同属一个事务

主方法中有调用其他service中的方法的,其他service方法A1若加REQUIRES_NEW标签,则为独立事务,

该方法若有运行时异常,则会使本方法和主方法全部回滚。
若在主方法A1之后还有主方法中方法B2,若B2抛出运行时异常,则主事务回滚,A1进数据库

总结:
1.主方法无事务标签时,调用其他sevice中的方法,无论为REQUIRES_NEW或者REQUIRED,都为独立的事务
2.主方法有事务标签时,调用其他sevice中的方法,若为REQUIRES_NEW,则为独立事务,该事务回滚,主事务也会回滚;
若为REQUIRED,则和主方法共用一个事务

转载于:https://my.oschina.net/vshcxl/blog/1552943

你可能感兴趣的文章
PIE SDK矢量点生成等值线、面
查看>>
(EM算法)The EM Algorithm
查看>>
grep用法
查看>>
top
查看>>
HTTP与HTTPS简介
查看>>
rhcsa第二天笔记
查看>>
一则 gfs2 集群文件系统无法挂载的解决案例
查看>>
曾经的你
查看>>
ArrayList的subList方法
查看>>
想当好员工,想加薪,想提高的最起码应该注意的几项工作习惯
查看>>
经典SQL语句大全(转)
查看>>
linux下repair filesystem模式修复方法
查看>>
Oracle从非归档模式变成归档模式
查看>>
互联网时代: 从Uber的供需匹配看开发需求
查看>>
在CentOS 6.7部署wordpress博客系统Discuz论坛系统
查看>>
中兴U880刷机
查看>>
Spring4学习笔记-泛型依赖注入
查看>>
OSPF的虚拟链路
查看>>
AngularJS 字符串
查看>>
thinkphp-条件判断-范围判断-in
查看>>