先把想要copy的去平铺

  //平铺树形结构List<AhseH0002AssessmentLibEntity> outList = new ArrayList<>();for (AhseH0002AssessmentLibEntity tTreeStructure : baseBean) {if (tTreeStructure.getZAhseH0002AssessmentEntity() != null) {List<AhseH0002AssessmentLibEntity> treeStructureList = tTreeStructure.getZAhseH0002AssessmentEntity();outList.add(tTreeStructure);convertChildrenToTileList(treeStructureList, outList);//若不需要字节点,则可设置为空//  tTreeStructure.setChildren(null);} else {outList.add(tTreeStructure);}}
//递归实现
private static void convertChildrenToTileList(List<AhseH0002AssessmentLibEntity> source , List<AhseH0002AssessmentLibEntity> outList){if(outList==null){outList = new ArrayList<>();}for (AhseH0002AssessmentLibEntity tTreeStructure : source) {if (tTreeStructure.getZAhseH0002AssessmentEntity() != null) {List<AhseH0002AssessmentLibEntity> treeStructureList = tTreeStructure.getZAhseH0002AssessmentEntity();outList.add(tTreeStructure);convertChildrenToTileList(treeStructureList, outList);//若不需要字节点,则可设置为空//  tTreeStructure.setChildren(null);} else {outList.add(tTreeStructure);}}}

将父id子id 分别存入

//传入链表不变ArrayList<AhseH0002AssessmentLibEntity> oldlist = new ArrayList<>(16);for (AhseH0002AssessmentLibEntity ahseH0002AssessmentLibEntity : outList) {AhseH0002AssessmentLibEntity ahseH0002AssessmentLibEntity1 = new AhseH0002AssessmentLibEntity();BeanUtils.copyProperties(ahseH0002AssessmentLibEntity, ahseH0002AssessmentLibEntity1);oldlist.add(ahseH0002AssessmentLibEntity1);}// id列表篇存MapHashMap<String, String> map = new HashMap<String, String>(16);for (AhseH0002AssessmentLibEntity assessmentEntity : outList) {String s = IdUtil.randomUUID();map.put(assessmentEntity.getId(), s);assessmentEntity.setId(s);}//循环链表保存修改后的值for (AhseH0002AssessmentLibEntity assessmentEntity : outList) {if (map.get(assessmentEntity.getFid()) != null) {//重置父级IDassessmentEntity.setFid(map.get(assessmentEntity.getFid()));} else {//查不到父级拿取前端传来IddassessmentEntity.setFid(idd);}ahseH0002AssessmentMapper.add(assessmentEntity);}//循环旧链表将关联的内容表查出并新建如另一张表for (AhseH0002AssessmentLibEntity ahseH0002AssessmentLibEntity : oldlist) {AhseH0002AssessmentlistEntity ahseH0002AssessmentlistEntity = new AhseH0002AssessmentlistEntity();ahseH0002AssessmentlistEntity.setAssessmentid(ahseH0002AssessmentLibEntity.getId());// 拿旧对象的List<AhseH0002AssessmentlistEntity> list = ahseH0002AssessmentlistMapper.getList(ahseH0002AssessmentlistEntity);if (list!=null&&list.size()>0){for (AhseH0002AssessmentlistEntity h0002AssessmentlistEntity : list) {// 将查出来的数据链表转换成另一张表内容AhseH0002AssessmentLiblistEntity copylist = new AhseH0002AssessmentLiblistEntity();copylist.setContent(h0002AssessmentlistEntity.getContent());copylist.setFraction(h0002AssessmentlistEntity.getFraction());copylist.setLrr(h0002AssessmentlistEntity.getLrr());copylist.setLrsj(h0002AssessmentlistEntity.getLrsj());copylist.setName(h0002AssessmentlistEntity.getName());copylist.setScoringCriteria(h0002AssessmentlistEntity.getScoringCriteria());//   BeanUtils.copyProperties(copylist, h0002AssessmentlistEntity);//生成新的id 并把新的关联id 传入新表copylist.setId(IdUtil.randomUUID());if (map.get(h0002AssessmentlistEntity.getAssessmentid())!=null){copylist.setAssessmentid(map.get(h0002AssessmentlistEntity.getAssessmentid()));}ahseH0002AssessmentLibListMapper.add(copylist);}}}

关于copy树形结构相关推荐

  1. Winform中实现向窗体中拖放照片并显示以及拖放文件夹显示树形结构(附代码下载)

    场景 向窗体中拖拽照片并显示效果 向窗体中拖拽文件夹并显示树形结构效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 ...

  2. [SQL Server]树形结构的创建

    对于SQL Server来说,构建显示一个树形结构不是一件容易的事情,逻辑构造能力不是它的强项.不过也不是说它没有能力干这个事情,只要换一种思维方式就可以理解它的工作原理. 例如,现在有一张表的内容如 ...

  3. 【树形结构】巴基斯坦城市列表 (城市原始数据来自md文件)

    github md文件地址 : cnic/cnic_codes_list.md at main · graysuit/cnic · GitHub import lombok.Builder; impo ...

  4. 组合模式 -- 树形结构处理

    树形结构在软件中随处可见,例如操作系统中的目录结构.应用软件中的菜单.办公系统中的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题,组合模式通过一种巧妙的设计方案使得 ...

  5. ios-使用树形结构导航模式

    // 树形结构导航模式 /* 树形结构导航模式也是非常重要的导航模式,它将导航视图控制器(UINavigationController)与表视图(UITableView)结合使用,主要用于构建有从属关 ...

  6. WebGL树形结构的模型渲染流程

    今天和大家分享的是webgl渲染树形结构的流程.用过threejs,babylonjs的同学都知道,一个大模型都是由n个子模型拼装而成的,那么如何依次渲染子模型,以及渲染每个子模型在原生webgl中的 ...

  7. 树形结构在关系数据库中的设计

    在程序设计中,经常以树形结构表示数据的层次关系,如菜单的结构.商品的分类等. 这样的层次结构在关系数据库中难以直观地表示.常见的一种做法是用一个字段指向上级节点来表示记录的上下级关系. fid pid ...

  8. html树状结构怎么展开,纯css实现树形结构

    纯css实现属性结构 **css实现属性结构的思路是利用伪类实现树形结构连接线,如果想实现点击展开和收 缩以及复选框效果还得配合js来实现.其实展开和收缩就是一个点击元素其子元素隐藏 和显示的切换.* ...

  9. 使用树形结构保存实体

    阅读原文请访问我的博客BrightLoong's Blog 之前在项目需要实现一个功能--将xml文件映射成实体,然后对映射的实体进行逻辑处理,最后保存到数据库中:由于xml结构的数据是结构化的数据, ...

最新文章

  1. 内容分发网络(CDN) 是什么
  2. github pages帮助如何创建个人博客
  3. 你真的理解BIO、NIO、AIO的区别吗?
  4. nginx 配置反向代理和负载均衡
  5. NBA Top Shot巨鲸17.5万美元购买的球星卡目前已值2000万美元
  6. 数据结构 3-2-2 队列的顺序存储实现
  7. Ubuntu中的回车与换行
  8. backlog配置_Nginx backlog配置概述
  9. CAN与CAN FD通信之间存在的问题
  10. 地图下载器拼接ArcGIS Server瓦片
  11. u盘装了linux后无法格式化,U盘制作ubuntu安装盘后无法格式化处理
  12. 对.Net 垃圾回收的C#编程相关方面(Finalize 和Dispose(bool disposing)和 Dispose())的一些理解体会【个人复习+zz】...
  13. 移动硬盘计算机无法打开硬盘,win10系统电脑无法打开移动硬盘的详细步骤
  14. python用的最多的版本_为什么有如此多的python版本
  15. linux网络编程常用头文件总结
  16. 安装sklearn-poter遇到报错(TypeError:‘encoding‘ is an invalid keyword argument for this function)
  17. 微村:做APP里的掌上村长
  18. Qt自定义控件创建和使用
  19. Matlab 元胞数组和结构体
  20. 原生JS实现的滚动抽奖工具(可设置每个奖品概率、滚动速度、滚动圈数)

热门文章

  1. 细看AI芯片的“小趋势”
  2. 【完成】自制5V光耦继电器,原理图、PCB、视频及源文件
  3. python-pip
  4. 【Flink 监控系列】Flink on yarn 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案
  5. 解决图片上传大小限制
  6. 折腾博客模板一个小时,无奈放弃
  7. 学计算机的需不需要考研?看完就明白了
  8. 详解如何从安卓金山词霸导出单词本上的单词
  9. J2EE企业开发规范
  10. 8.1上午USCI串行通信组件