记一次@Transactional事务回滚的问题

本文讲述了在系统测试中遇到的一个关于事务处理的问题。测试过程中,一个简单任务的复制功能由于@Transactional配置不当,在inserttable2步骤发生异常时,事务只回滚了最后两步,而未涉及DDL操作。作者发现DDL放最后可以触发全部回滚。通过这个bug的解决,强调了事务管理和异常处理在数据库操作中的重要性。

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

这两天部门组织系统测试,忍不住再次夸赞下测试组的小姐姐们真是心细啊!!!!

一个简单的任务复制功能,就是copy一条数据库的现有数据进行一些处理后然后作为一条新的数据插入数据库。实现类方法添加了@Transactional(rollbackFor = Exception.class),过程中涉及两个张表:

插入动作流程如下:

结果由于最后一步insert table2的时候发生异常(我可以说不是我的bug吗) ,导致事务回滚,结果他只把最后两步的操作回滚了,碰到ddl就终止了,这个操作之前确实没注意,就导致插入的数据有问题。

经过测试发现ddl放最后如果ddl发生异常是可以把上面的步骤全部回滚的

 有解决一个bug

关机底薪到手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值