java单表无限级联删除业务实现
时间: 2024-01-15 18:08:17 浏览: 57
漂亮无限级分类源代码(三层实现).zip
针对单表无限级联删除,可以使用递归的方法来实现。以下是一个简单的示例代码:
```
public class CategoryService {
@Autowired
private CategoryMapper categoryMapper;
// 删除指定分类及其所有子分类
public void deleteCategoryById(Integer id) {
Category category = categoryMapper.selectByPrimaryKey(id);
if (category != null) {
// 递归删除子分类
deleteChildCategory(category);
// 删除当前分类
categoryMapper.deleteByPrimaryKey(id);
}
}
// 递归删除子分类
private void deleteChildCategory(Category category) {
List<Category> childCategories = categoryMapper.selectByParentId(category.getId());
if (childCategories != null && !childCategories.isEmpty()) {
for (Category childCategory : childCategories) {
deleteChildCategory(childCategory);
categoryMapper.deleteByPrimaryKey(childCategory.getId());
}
}
}
}
```
在上面的代码中,我们首先查询出指定分类的信息,然后递归地删除所有子分类,最后再删除当前分类。递归删除子分类的方法中,我们先查询出当前分类的所有子分类,然后逐个删除子分类,同时再递归地删除子分类的子分类,以此类推,直到没有子分类为止。
阅读全文