JAVA查询类别(菜单)下的所有子类别(递归)

 

JAVA实现查询栏目、类别(菜单)返回树结构(递归):https://www.cnblogs.com/pxblog/p/14587150.html

 

复制代码
/**
     * 获取父类别下面的所有子类别
     * @return List<StoreGoodsCate> 返回当前类别下的所有子类别集合
     */
    public List<StoreGoodsCate> getCateNode(List<StoreGoodsCate> storeGoodsCates){
        List<StoreGoodsCate> newCateIdNode = new ArrayList<>();
        for(StoreGoodsCate cate: storeGoodsCates){
            if(getCateChildren(cate).size() != 0){
                //还有子类别,递归查询所有子类别
                newCateIdNode.addAll(getCateNode(getCateChildren(cate)));
            }else{
                //没有子类别,把当前节点添加到集合中
                newCateIdNode.add(cate);
            }
        }
        return newCateIdNode;
    }

    /**
     * 查询当前类别的子类别集合
     *  这里根据自己实际项目方法即可
     * @param storeGoodsCate
     * @return
     */
    public List<StoreGoodsCate> getCateChildren(StoreGoodsCate storeGoodsCate){
        QueryWrapper<StoreGoodsCate> queryWrapper = new QueryWrapper<StoreGoodsCate>()
                .eq("pid", storeGoodsCate.getId())
                .eq("is_deleted", 0);
       return cateService.list(queryWrapper);
    }
复制代码

 

这种方法只能适用于数据量比较少的,如果数据量很大,这种查询方式会非常慢,慎用

posted @   yvioo  阅读(1164)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2019-03-11 CentOS 7 配置静态IP
2019-03-11 CentOS7安装Jdk1.8
2019-03-11 JS通过类名判断是否都必填
2019-03-11 JS控制文本框只能输入数字 \保留小数点后两位
2019-03-11 JS取出两个数组中不重复的值
点击右上角即可分享
微信分享提示