先上数据库结构图和树形图;

项目中的一个需求是获取一个商品所属的二级分类名称。

思路分析,首先,我们是可以拿到当前商品所属的子分类的,比如说我买的是一个iPhone SE,对应的分类名称是iPhone低端版,然后反向递归去查询父分类。它的父分类是iPhone,同理,iPhone的父分类是手机,所以最后面我们拿到的对象应该是手机这个二级分类。

首先我们获写一个获取全部分类的方法方便我们后面使用:private List 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 说明我们找到了二级分类,所以这里直接返回,跳递归了,否则就一直去查找,直到找到为止。

java 获取父节点_Java根据子节点递归父节点相关推荐

  1. java获取页面标签_java获取网页源代码后,提取标签内容……

    java获取网页源代码后,提取标签内容-- 关注:245  答案:2  mip版 解决时间 2021-02-01 09:11 提问者咏bù琂败 2021-01-31 13:49 import java ...

  2. java 获取视频信息_Java获取视频参数信息

    Java获取视频参数信息 资料收集 经过搜索常用的处理视频的方式有两种:xuggler 和 ffmpeg 因ffmpeg 需要使用JNI调用,这里采用xuggler方式 使用xuggler获取视频宽. ...

  3. java获取每月最后一天_java获取每月的最后一天实现方法

    实例如下: public static void main(String[] args) throws ParseException { // 获取当月的天数(需完善) SimpleDateForma ...

  4. java 获取调用者方法_java获取调用当前方法的方法名和行数

    java获取调用当前方法的方法名和行数 String className = Thread.currentThread().getStackTrace()[2].getClassName();//调用 ...

  5. java获取所有进程_Java 获取系统的进程列表

    前几天发表了<Java 定时启动服务>文章,现在发表这篇文档<Java 获取系统的进程列表>,看似联系不大,实质在某些需求上还是有所关系.比如现在有这个需求:定时器启动服务时, ...

  6. java获取扩展名_Java获取文件扩展名称

    有时在处理文件时,需要根据文件类型对它们进行不同的处理. java.io.File没有任何获取文件扩展名的方法,这里提供了一个实用工具方法来获取文件扩展名. Java获取文件扩展名 在句点(.)之后, ...

  7. java 获取包路径_java获取java文件路径的四种方法

    java获取java文件路径的四种方法 发布时间:2020-04-17 11:03:45 来源:亿速云 阅读:750 作者:小新 今天小编给大家分享的是java获取java文件路径的四种方法,很多人都 ...

  8. java获取客户端系统信息_java 获得系统信息

    Java代码 import java.util.Properties; Properties props=System.getProperties(); //获得系统属性集 String osName ...

  9. java 获取 客户端端口_Java获取客户端IP、端口等信息

    Java获取客户端IP.端口等信息.txt花前月下,不如花钱"日"下.叶子的离开,是因为风的追求还是树的不挽留?干掉熊猫,我就是国宝!别和我谈理想,戒了!Java获取客户端IP.端 ...

  10. java获取系统日期_java怎么获取当前日期

    java获取当前日期的方法:直接实例化位于Java包java.util的Date类即可,如[Date date = new Date();]. System.currentTimeMillis() 获 ...

最新文章

  1. CMake 指定安装目录
  2. python js加密解密_AES用cryptojs加密,用python解密加密Ciph
  3. WPF解决WindowsFormsHost背景透明
  4. 建立适合大数据成功的团队
  5. 聊聊网络游戏同步那点事
  6. 【福利派送】浪漫七夕,不可辜负!这 8 份礼物请收下!
  7. Python数据分析实战项目-共享单车骑行数据分析
  8. uniapp防抖操作
  9. 【软件质量】软件质量
  10. php替换文本域中的换行符,文本域中换行符的替换示例
  11. Struts2 注解模式
  12. BitMap 的基本原理和实现
  13. 云杰恒指:8.30恒指期货早盘资讯
  14. matlab和numpy的ones用法
  15. 狐狸找兔子 ← C语言实现
  16. Laravel数据库之Seeding
  17. JNI_OnLoad 回调Java_Java本地接口(JNI)编程指南和规范(第八章)
  18. java封装、继承和多态练习题
  19. 2、phpstudy本地搭建网站
  20. 2019年燕山大学大学生程序设计大赛(一)

热门文章

  1. c++工程 eclipse导入项目_在Eclipse中开发C/C++项目
  2. php 正则抓取页面内容_php 正则表达式抓取网页内容
  3. 如何选择视频分辨率、帧率、码率?
  4. SRAM和DRAM区别
  5. 舍友看老杜视频自学Html,竟直接跳过最重要的form表单环节,太让人痛心了
  6. 【gmoj】 【tarjan】 【拓扑】 【并查集】 QYQ在艾泽拉斯
  7. DDL语言(DataDefinelanguage 数据库定义语言)
  8. 由一张暴利的地图获得的珍贵启示_——————_SADF3443
  9. JAVA中方法的调用
  10. FreeNas安装教程