Java事务回滚问题:抛出异常事务,并返回给前端异常信息

博客内容讲述了在修改系统功能,允许用户批量设置管理员时遇到的问题。原先的逻辑只支持单个用户设置,而现在改为多选,导致如果批量设置中存在已为管理员的用户,系统会错误地尝试再次设置。为了解决这个问题,作者提出了添加事务回滚的解决方案,确保当批量操作中存在不符合条件的用户时,所有已更改的状态能够被恢复到操作前的状态,保持数据的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、背景

修改bug。
之前的开发写的只能单选,所以逻辑都是按照只需要传递一个id值的逻辑写的
现在改为多选时,传递过来的是id数组,所以直接原逻辑的外层加了一个循环,这样原逻辑包括sql就不需要大变动,
但是这样会有个问题:
假如3原本就已经是管理员了,所以当循环到3时会判断出这个用户已经设置为管理员了(作了状态判断)
现在的要求是:假若选择的4个成员批量设置为管理员,这一组成员里只要有一个不符合要求(已经是管理员了),那么对这一组的设置是失败的,即通过循环设置好的并已经update到数据库里的,也需要恢复到之前的状态(回滚)
在这里插入图片描述

2、解决办法

添加事务回滚
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/03d156011ee94593992cafc7274718fc.png在这里插入图片描述
欢迎讨论~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐布衣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值