Java递归,查询与搜索相关的全部的数据

图片说明

每一个门店都是有id和parentId,只是总店的parentId为null而已,我要查询其中一个门店,假如说,我要查询分店3,我能把与门店3有关联的门店总门店到分店6都能查询出来。用递归的方式来查询。

看不懂你的问题在哪里?

// 首先根据其中一个门店,查到他的总们店, 然后递归取出总们店下所有子门店

public static void main(String[] args) {
Store current = new Store();
while(current.parent != null){
current=current.parent;
}
findStore(current);
}
public static List findStore(Store s){
List re = new ArrayList<>();
re.add(s);
if(s.child != null){
for (Store c: s.child){
re.addAll(findStore(c));
}
}
return re;
}
static class Store {
Integer id ;
Store parent;
List child;
}

/**
     * 描述:查询所有部门
     * @return 返回结果集
     */
    @Override
    public List<DepartmentPojo> queryAllDepartment() {
        Integer depParentId=0;
        List<DepartmentPojo> list = departmentMapper.queryAllDepartment(depParentId);
        for (int i = 0; i < list.size(); i++) {
            setChildrens(list.get(i));
        }
        return list;
    }

    /**
     * 描述:递归所有子部门以及部门的角色
     * @param children
     */
    public void setChildrens(DepartmentPojo children){
        children.setChildren(departmentMapper.queryAllDepartment(children.getDepId()));
        children.setRolePojoList(departmentMapper.queryDepartmentRole(children.getDepId()));
        if(children.getChildren().size()!=0){
            for (int i = 0; i < children.getChildren().size(); i++) {
                setChildrens(children.getChildren().get(i));
            }
        }
    }