有关事务不起作用的原因---尤其是加了@Transactional 注解还不起作用

MongoDb 本身没有事务功能。一般不用做金融,涉及钱之类的业务。
So,一般涉及事务是用都是用的其他数据库。
一般事务不起作用有三个方面原因:
1,忘了在实现业务层中忘了添加,如图的:
在这里插入图片描述
@Transactional 注解 !

2,把错误给抛出去了,添加事务控制相当于没有添加。如图:错误的写法
在这里插入图片描述
在添加了@Transactional 注解后,事务控制不住是因为 try{…}catch(Excetion e){…} 中用了Exception
捕获异常!为什么不能用它呢?因为如图:
在这里插入图片描述
Exception捕获的异常直接抛出去了 从而没有回滚!
而正确的做法是:
在这里插入图片描述
应该采用BeansException .原因是:如图:
在这里插入图片描述
BeansException 最终继承的是RuntimeException 它是不会被抛出外面 所以用到事务的地方可以回滚!

3.再有问题就是你的代码写错了。哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值