一张表,id,name,pid,分为一级二级和三级对象,如何级联删除

本文分享了一种在电商项目中处理级联删除问题的方法,涉及一张包含id,name,pid字段的表,分别表示一级、二级和三级对象。作者通过纯逻辑代码实现了删一级时删除所有子级,删二级时删除三级对象,删三级仅删除自身的需求。文中提供了关键步骤的注释解析,并提到有时会使用SQL触发器来实现,但鉴于时间限制,当前的解决方案更为直接。
摘要由CSDN通过智能技术生成

最近一直在做电商的项目,一直都没有时间去分享一些使用代码。因为也是刚开始学习java,所以我更注重基础逻辑与业务。最近遇到个小难点,对于一些大神肯定是easy了。那就是级联删除。我最开始查了一下别人的代码,发现从各个角度都实现不了我的需求,于是我静下心来,写了一段纯逻辑的代码,希望大家遇到级联删除束手无策时能够给你一些便捷。
下面就是头脑风暴了,做好准备!
场景:一张表里面有id,name,pid,分为一级、二级和三级对象。
要求:删一级同时删除二级三级对象,删二级同时删除三级对象,删三级正常删除自己就行。
由简入难,下面是代码,关键步骤有多行单行注释进行解释。有不理解的,可以私信我,咱们一起探讨更简单的方法来实现。

/**
	 * 删除三级分类方法,已知传进来的是三级对象id
	 * @param id
	 * @param model
	 * @return
	 */
	@RequestMapping("toDeleteSort3")
	public String toDeleteSort3(String id,Model model) {
   
		try {
   
			int count = sortService.deleteByPrimaryKey(Integer.parseInt(id));
			return "redirect:/admin/sort/toclasslist?parentid=0";
		} catch (Exception e) {
   
			e.printStackTrace();
			model.addAttribute("msg", e.getMessage());
			return "redirect:/admin/sort/toclasslist?parentid=0";
		}
	}
	/**
	 * 删除二级分类方法,先找对应三级删除,然后删除二级。已知传进来的是二级对象id
	 * @param id
	 * @param model
	 * @return
	 */
	@RequestMapping("toDeleteSort2")
	public String toDeleteSort2(String id,Model model) {
   
		//得到三级对象,此方法是查询pid等于此id的三级对象方法
		List<Sort
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值