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

图片说明

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

3个回答

看不懂你的问题在哪里?

wuxianzhenjia
无限真假 回复deluhorse: 是呀,因为分店3与分店2也相关联,我现在已经完成能够平级查询了,就是输入总店id的时候,只出现总店一个门店,输入分店1或者分店2的id,分店1和分店2都能出来,这就是平级查询,就是向下查询没有做出来,这个要用递归方法,我对于递归不是很熟悉,所以希望您不吝赐教
2 年多之前 回复
weixin_38780256
deluhorse 回复无限真假: 你输入2的id,然后查询3的信息?????
2 年多之前 回复
wuxianzhenjia
无限真假 意思就是 假如我按照id查询 我输入一个id 比如我输入的是分店2的id002,然后返回给我一个List,里面包含所有与分店3相关的门店,就是如图全部的门店,都能查询出来,他的父门店,他的兄弟门店,他的子门店,他兄弟门店的子门店。都能查询出来,请问您明白了吗?
2 年多之前 回复

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

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));
            }
        }
    }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!