Spring中@Transactional事务回滚使用场景

@Transactional(rollbackFor = Exception.class)

回滚事务,捕捉异常。使用在public修饰的接口或者serviceImpl上
使用场景
说明: 有一个商品表,一个商品包装表,关系是一对多的关系,即一个商品可以有多个包装。
业务: 现有一杯奶茶,有中杯,大杯两种,现在需要更新这个商品对应的包装,更新成为中杯,大杯,超大杯三种。
思路: 先获取商品信息,根据商品信息查找包装信息,然后删除包装信息(中杯,大杯),接着新增三个包装(中杯,大杯,超大杯)。
问题: 在删除包装(中杯,大杯)信息之后,新增包装(中杯,大杯,超大杯)时报错,刷新之后会出现商品对应的包装已经删除,但是没有新增。
解决方案: 为了解决上述问题,新增失败之后,老的包装还存在,即数据进行回滚,在public修饰的接口或者serviceImpl上添加@Transactional(rollbackFor = Exception.class)注解,在新增包装异常时,可以手动添加异常

throw new RuntimeException("包装新增失败");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

XuDream

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

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

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

打赏作者

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

抵扣说明:

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

余额充值