当前位置: 首页 > 知识库问答 >
问题:

java - 连带删除怎么处理?

林玮
2023-05-13

有两个表A,B,A表:image.pngB表:image.png,B表的dict_id字段为A表的id字段。
如果我要删除A表的一条记录,同时也要删除关联A表的B表的记录,
问题:如果删除A表记录成功,删除B表记录失败,失败情况:1.B表没有关联A表的记录 2.删除B表过程失败,比如sql语句错误。第一种情况最终结果为成功,第二种结果为失败,进行回滚。
以下为有bug代码:当id不存在,没有删除数据时,最后还是返回true,没有返回false
image.png
我应该怎么修改?
方案一:删除A表记录成功后,查询B表是否有关联记录,有进行删除,删除失败则最终结果为失败,抛异常回滚。
此方案是否可行?但每次删除查多一次B表会不会太耗费性能?还有其它的解决方案吗?

共有3个答案

邵子平
2023-05-13

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

芮念
2023-05-13

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

甘英光
2023-05-13

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

 类似资料:
  • 我正在使用改型2.0,我正在我的Android应用程序中实现删除功能,但是,我不能成功,有人能给我一个建议吗? 我两个都试过:

  • 1.手机版 删除方法:轻应用右上角详情-右上角菜单-移除应用   2.电脑版 删除方法:轻应用右上角详情-设置-移除轻应用  

  • 人员管理-成员-删除或查看成员详情-删除

  • 本文向大家介绍大顶堆怎么插入删除?相关面试题,主要包含被问及大顶堆怎么插入删除?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 插入:在一个大顶堆之后插入新的元素可能会破坏堆的结构,此时需要找到新插入节点的父节点,对堆进行自下而上的调整使其变成一个大顶堆。 删除:将堆的最后一个元素填充到删除元素的位置,然后调整堆结构构造出新的大顶堆

  • ​ ​ ①进入APP主界面,点击左上角的地图列表按钮,如上图红框处按钮 ​ ​ ②地图列表如上图,在列表上可以选择不同的地图列表切换不同的数据地图,点击新建地图按钮如上图红框中,即可进入创建地图 ​ ​③创建地图,先填入地图名称(地图的简短标识,必须填写),点击保存即可新建地图操作,如上图。

  • ​ ​ ①点击条件详情即可编辑条件,如上图红框处 ​ ​ ②可编辑内容如上图,可编辑相关内容,也可删除该预警条件,删除按钮在右上角。 注意:如指标超限改为到期提醒的话,那图层下面需要有日期字段才可成功更改。