【JAVA】对树形结构进行模糊查询(含分页)

需求场景:

对树形结构进行模糊查询(含分页)

示例:通过名称、日期等条件查询筛选出带有顶级节点的过滤分页树,如果查询的节点不是顶级节点时,需要将其所有的上级路径数据全部带出来。


难点:

树分页,非顶级节点,n棵m叉树


解决方案:

方案一:

1、根据条件查出数据A集合
2、根据A集合“分页”查出所有的顶级(父)节点B集合 // 去重、利用sql函数可获取顶级节点
3、根据B集合查出所有的下级节点C集合(合并B集合)//
4、根据A集合筛选过滤C集合得到最终的D集合 // 筛选过滤操作,此步骤参考树过滤
5、将D集合组树得到E集合(树形结构)// 树工具类


方案二:

1、根据条件查出数据A集合
2、根据A集合“分页”查出所有的顶级(父)节点B集合 // 去重、利用sql函数可获取顶级节点
3、根据A集合查出所有的上级节点C集合(包含A集合本身) // 去重
4、将B集合和C集合去重合并成D集合 // 过滤掉不在B集合中的顶级节点
5、将D集合组树得到E集合(树形结构) // 树工具类,由于第4步骤过滤了部分顶级节点,所以组成新树的时候,会把找不到顶级节点的数据筛选过滤掉