Spring事务失效常见场景
来源:http://www.tudoupe.com时间:2022-07-30
交易方法访问修改者非公开,导致交易失败
1、实例
2、解决
方法一:将方法修改器更改为公开
方法2:打开 SpectJ代理模式
3、注意
如果事务是static、final的,同样无法通过动态代理,事务也是不会生效的。
Spring的声明事务基于动态代理实现,我们不能重写最后修改方法;
无论JDK动态代理还是Cglib动态代理,就是通过代理人到达代理人的特定对象,静态方法修改方法属于该类,不属于任何对象,所以静态方法不能重写,即便写法上是重写,但它没有重写的意思,这意味着静态方法不能作为动态代理。
@Transactional注释方法所投出的异常不是例外支持的副源,导致了交易失败
1、实例
2、解决
3、注意
spring的事务只支持未检查异常(unchecked),不支持已检查异常(checked)。
数据表本身不支持事务,导致事务失败
1、实例
如果MySQL被使用,存储引擎是MyISAM,事务是没有功能的,因为MyIASM不支持事务。
2、解决
数据表可以转换为InnoDB存储引擎以支持事务
@Transactional注释位置的类未被管理,导致交易失败
1、实例
2、解决
添加 @Service评论或使用其他方法或评论可以被注册为春豆。
在捕获异常后,没有再投出异常,导致交易失败
1、实例
2、解决
3、注意
如果在加有事务的方法内,使用了try…catch…语句块对异常进行了捕获,而catch语句块没有throw new RuntimeException异常或者Spring支持的异常类型,则事务不会回滚。
该方法本身(该方法)会引发一个导致交易失败的问题
事务方法insertUser()在非事务方法insert()中调用自己的类。
1、实例
2、解析
3、解决
方式一:
方式二:

方式三:
方式四
数据源没有配置事务管理器,导致事务失败
发送类型不支持事务,导致事务失败
1、实例
2、注意
多线调用导致交易失败
1、实例
2、解析
先自我介绍一下,他高中毕业了13年,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。了解大多数年轻的Java工程师,想要升技能,经常需要找到自己的成长或向班上汇报。但对于培训机构来说,学费大约是人民币,着实压力不小。当你不在系统时,自我学习的效率很低,而且很持久。也很容易停止天花板技术。所以我为你收集了一个"java开发工具"初衷也很简单,这是一个想帮助自己学习的朋友,却不知道该从哪里学习。同时减少每个人的负担.添加下方名片,你可以得到完整的学习信息
上一篇:常见的云计算安全问题以及如何解决
下一篇:TCP/IP 常见问题
相关新闻
- 2023-04-16 2台电脑怎么共享(2台电脑怎么共享
- 2023-04-16 主板检测卡代码(电脑主板检测卡代
- 2023-04-16 dnf未响应(dnf未响应老是上不去)
- 2023-04-16 ppoe(pppoe拨号上网)
- 2023-04-16 网速不稳定(网速不稳定是路由器的
- 2023-04-16 wds状态(Wds状态成功)
- 2023-04-16 光标键(光标键不动了怎么办)
- 2023-04-16 电脑提速(电脑提速100倍的方法)
- 2023-04-16 切换用户(切换用户怎么切换回来
- 2023-04-16 数据包是什么(产品数据包是什么
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
