连带删除怎么处理?

有两个表A,B,A表:B表:,B表的dict_id字段为A表的id字段。
如果我要删除A表的一条记录,同时也要删除关联A表的B表的记录,
问题:如果删除A表记录成功,删除B表记录失败,失败情况:1.B表没有关联A表的记录 2.删除B表过程失败,比如sql语句错误。第一种情况最终结果为成功,第二种结果为失败,进行回滚。
以下为有bug代码:当id不存在,没有删除数据时,最后还是返回true,没有返回false

我应该怎么修改?
方案一:删除A表记录成功后,查询B表是否有关联记录,有进行删除,删除失败则最终结果为失败,抛异常回滚。
此方案是否可行?但每次删除查多一次B表会不会太耗费性能?还有其它的解决方案吗?


回答:

所谓的BUG是指什么呢,是指事务注解没生效吗?
如果是的话,是因为异常被catch了。
最简单的方法,把异常往出抛,在调用处做捕获处理。


回答:

异常要抛出去不可以自行抓住吞掉,不然事务无法感知,以为成功就提交了


回答:

把这两个删除操作放在同一个事务里面就行了吧,异常不要catch了之后不抛出来,用上事务的注解,两个中任意一个操作出错,都会被当做同一个事务回滚的

以上是 连带删除怎么处理? 的全部内容, 来源链接: utcz.com/p/945162.html

回到顶部