查询数据组合成list集合

小记

需求:字典表中有四条模板数据需要查询出来放在第一层,然后将对应的模板表里对应模板下的详细模板查询出来展示为二级。像层级树又不是。

表结构(主表)
在这里插入图片描述
子表
在这里插入图片描述

  1. 涉及到两个实体类,因为要给主表实体对象设置一个 children集合,返回对象类型为子表的实体对象。
    private List children = new ArrayList<>();
    2.service中代码实现
public List<ZxSpDataDictionary> getActivityTemtlateTree() {
		// 1. 先获取当前的模板类型种类
		ZxSpDataDictionary zxSpDataDictionary = new ZxSpDataDictionary();
		// 2.查询出字典表中有哪些种类的模板
		List<ZxSpDataDictionary> rootList = zxSpDataDictionaryMapper.queryTempleteList(zxSpDataDictionary);
		// 3. 创建一个子表对象
		ZxSpTemplateSubUnit zxSpTemplateSubUnit = new ZxSpTemplateSubUnit();
		// 4. 获取子表中的数据
		List<ZxSpTemplateSubUnit> childList = zxSpTemplateSubUnitMapper.queryTempleteList(zxSpTemplateSubUnit);
		// 5. 判断主表是否为空
		if (rootList != null && rootList.size() > 0){
			// 6. 遍历主表查询出的数据
			for (ZxSpDataDictionary spDataDictionary : rootList) {
				// 7. 在遍历主表的时候创建一个参数类型子表对象的list集合
				List<ZxSpTemplateSubUnit> templateSubUnitList = new ArrayList<>();
				// 8. 遍历子表查询出的list集合 用每个元素跟当前元素做比较。
				for (ZxSpTemplateSubUnit spTemplateSubUnit : childList) {
					// 9. 获取主表和子表关联字段,进行匹配,如果匹配就把子表该条数据对象放入新创建的子表对象list集合
					if (spDataDictionary.getValue().equals(spTemplateSubUnit.getTempleteType())){
						templateSubUnitList.add(spTemplateSubUnit);
					}
				}
				// 遍历完子表数据后,将临时集合设置为主表的子节点
				spDataDictionary.setChildren(templateSubUnitList);
			}
		}
		return rootList;
	}

在这里插入图片描述
开发小白记录日常开发,如有好的方法还望不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值