JAVA查詢類別(菜單)下的所有子類別(遞歸)


 

 

/**
     * 獲取父類別下面的所有子類別
     * @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);
    }

 

這種方法只能適用於數據量比較少的,如果數據量很大,這種查詢方式會非常慢,慎用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM