最近一直在做电商的项目,一直都没有时间去分享一些使用代码。因为也是刚开始学习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