Java根據子節點遞歸父節點


先上數據庫結構圖和樹形圖;

項目中的一個需求是獲取一個商品所屬的二級分類名稱。

思路分析,首先,我們是可以拿到當前商品所屬的子分類的,比如說我買的是一個iPhone SE,對應的分類名稱是 iPhone低端版 ,然后反向遞歸去查詢父分類。它的父分類是 iPhone ,同理,iPhone的父分類是手機,所以最后面我們拿到的對象應該是 手機 這個二級分類。

 

首先我們獲寫一個獲取全部分類的方法方便我們后面使用:private List<TblCategory> allCategory = categoryMapper.findAllCategory();

 public TblCategory getParentCategoryObject(TblCategory category) {
        if (category.getParentId() == 1) {
            return category;
        }

        TblCategory tblCategory = allCategory.stream().filter(
                x -> Objects.equals(x.getCategoryId(), category.getParentId())
        ).findFirst().get();

        return getParentCategoryObject(tblCategory);
    }

  

category.getParentId() == 1 說明我們找到了二級分類,所以這里直接返回,跳遞歸了,否則就一直去查找,直到找到為止。


免責聲明!

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



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