Java删除树形数据

/**
* 删除某个项目
* 同时删除下面的子项目
*
* @param pId
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteProject(String pId) {
ArrayList<String> pIdList = new ArrayList<>();
pIdList.add(pId);
this.getIds(pIdList, pId);
projectMapper.deleteBatchIds(pIdList);
}

/**
* 递归获取
* @param ids
* @param oneId
*/
private void getIds(ArrayList<String> ids, String oneId) {
QueryWrapper<Project> wrapper = new QueryWrapper<>();
wrapper.eq("P_PARENT_ID", oneId);
List<Project> projectList = projectMapper.selectList(wrapper);

//遍历二级分类的对象,把二级分类的id加入到要删除的集合中
for (Project project : projectList) {
String id = project.getpId();
ids.add(id);
this.getIds(ids, id);
}

}
原文地址:https://www.cnblogs.com/gslgb/p/13686523.html