一次性加载树结构数据表 mapper加载
*************************************************************
@Override public List<Organization> getOrganizationTree() throws UnionException {//缓存有就从缓存拿List<Organization> redisObjectOrganizationList = (List<Organization>) redisObjectUtil2.getListObject(assembleRedisKeyOrganizationTree() );if(!CollectionUtils.isEmpty(redisObjectOrganizationList)){return redisObjectOrganizationList;}List<Organization> organizationTreeList = new ArrayList<>();Organization organizationTree = new Organization();List<Organization> allOrganization = getOrganizationAndChildrenById(0L);//目录无限制for (Organization organizationItem : allOrganization) {//第一层if (organizationItem.getPid().equals(0L)) {organizationTree = organizationItem;organizationTree.setOrganizationTreeList(this.getSonOrganizationList(organizationItem.getId(),allOrganization));organizationTreeList.add(organizationTree);}}//数据库查询出来 设置到缓存当中redisObjectUtil2.setListObject(assembleRedisKeyOrganizationTree() ,organizationTreeList);return organizationTreeList; }private List<Organization> getSonOrganizationList(Long id ,List<Organization> allOrganization) {List<Organization> listvo = new ArrayList<>();for (Organization organizationItem : allOrganization) {//找到父级相同的下级if (organizationItem.getPid().equals(id)) {listvo.add(organizationItem);}}if(!CollectionUtils.isEmpty(listvo)){for(Organization vo:listvo){vo.setOrganizationTreeList(getSonOrganizationList(vo.getId(),allOrganization));}}return listvo; }
**********************************************************************
@Data @ApiModel(value = "组织机构信息") public class Organization implements Serializable {@ApiModelProperty(name = "主键id")@JSONField(serializeUsing = ToStringSerializer.class)private Long id;@ApiModelProperty(name = "父主键id")@JSONField(serializeUsing = ToStringSerializer.class)private Long pid;@ApiModelProperty(name = "组织编号")private String code;@ApiModelProperty(name = "组织名称",notes = "长度100",required = true)@NotEmpty@Length(min = 1,max = 100)private String name;@ApiModelProperty(name = "排名")private Integer rank1;@ApiModelProperty(name = "是否有效")@Length(min = 1,max = 1)private String isEnable;@ApiModelProperty(name = "是否删除")@Length(min = 1,max = 1)private String isDeleted;@ApiModelProperty(name = "创建时间")private Date createTime;@ApiModelProperty(name = "更新时间")private Date updateTime;private List<Organization> organizationTreeList;/*** 重写equals 和hashcode方法* alt+insert 之选择id就好了 只要id重复就是重复*/@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Organization that = (Organization) o;return id.equals(that.id);}@Overridepublic int hashCode() {return Objects.hash(id);}}
*************************************************************************
java 一次查询数据库生成树形结构
2019-01-29 00:36:05 suhongliang 阅读数 425更多
分类专栏: IT管理
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/suhongliang/article/details/86684787
@Override public ResultObj getMenu() throws Exception {MenuDomain resultMenuDomain = new MenuDomain();List<MenuDomain> allMenu = menuDao.getMenu();//目录无限制for (MenuDomain menuItem : allMenu) {//第一层if (menuItem.getPid() == 0) {resultMenuDomain = menuItem;resultMenuDomain.setList(this.getSonMenuList(menuItem.getId(),allMenu));}}ResultObj resultObj = new ResultObj();return resultObj; }private List<MenuDomain> getSonMenuList(Integer id ,List<MenuDomain> allMenu) {List<MenuDomain> listvo = new ArrayList<>();for (MenuDomain menuItem : allMenu) {if (menuItem.getPid() == id) {//找到父级相同的下级listvo.add(menuItem);}}if(listvo.size() > 0){for(MenuDomain vo:listvo){vo.setList(getSonMenuList(vo.getId(),allMenu));}}return listvo; }
一次性加载树结构数据表 mapper加载相关推荐
- python爬取js加载的数据_JS动态加载数据不会爬?老司机教你两个方法爬取想要的数据...
学习Python的人绝大部分都是在用Python做爬虫,毕竟对于爬虫而言Python是不二选. 但是一般简单的静态页面网站还是很好爬取的,对于很多动态加载的网站就不知道怎么办了,今天小编就给大家介绍两 ...
- 微信小程序上拉加载 加载更多数据 触底加载 点击加载更多数据
开发需求 进入页面,加载初始数据,当向上拖动页面至底部,自动加载新的数据,即上拉加载更多数据. 演示 index.wxml <!-- 数据列表 --> <view wx:for=&q ...
- js控制css 加载,CSS样式表的加载对于DOM解析,渲染,JS执行的阻塞问题
CSS加载问题 css加载会不会阻塞DOM树的解析? css加载会不会阻塞DOM树的渲染? css加载会不会阻塞后面js语句的执行? css阻塞 h1 { color: red !important ...
- tp3数据表新加了一个字段,怎么插都插不进去
- 微信小程序实现上拉加载更多数据(分页加载)
前言: 该实例和我其他两篇文章息息相关,不清楚的可以先做功课 Vant Weapp小程序 UI 组件库 https://blog.csdn.net/qq_36303853/article/detail ...
- 自制预防校园暴力的智能监控系统:远程加载表格数据,SQLAlchemy操作数据库,云服务器(CentOS)
本文是[小码哥李明杰老师]指导完成的山东大学引航计划公益人工智能科研实训项目. 自制预防校园暴力的智能监控系统 重定向路径 路由配置(访问根路径,直接重定向到main): export default ...
- ExtJs TreePanel 不能加载ashx数据的解决办法
今天学习Extjs TreePanel 时在加载动态数据时经常加载不进来,因为我是使用MVC2获取动态数据的,单独调试MVC的返回数据时OK的,网上有很多解决方案,其中最简单的是: loader: n ...
- python读取第二行_使用Python操作Excel(二):读取数据表
上一节我们提到,使用openpyxl可以方便的对数据表进行操作,例如:抽象Excel数据并存入数据库 将数据库数据导出到Excel 给一个已存在的数据表追加信息 我们还介绍了一些Excel的基本术语, ...
- 多表联查加载zTree树结构
zTree简单的数据加载就是 查询数据的id和pId ,然后在setting里边设置idKey和pIdKey就可以了. 最近写多表查询的时候就懵了,因为表之间有关联关系 ,我用的是三张表, 有外键关系 ...
最新文章
- swift中delegate与block的反向传值
- 北大华为鹏城联合首次提出视觉 Transformer 后量化算法!
- Linux-系统时钟
- [three.js]学习笔记
- PhotoShop算法原理解析系列 - 像素化---》碎片。
- HCTL-2020正交码读写芯片
- 扩展坞可以把手机投到显示器吗_你的电脑可以省了!华为Mate 30搭配绿联新一代扩展坞轻松变电脑...
- 基于Spring-Data-Redis存储JavaBean对象
- 从零开始搭建spring-cloud(2) ----ribbon
- 数论 —— 线性同余方程组与中国剩余定理
- shell建设告警系统
- 深度学习相关优化器以及在tensorflow的使用(转)
- I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking
- java中的关键字有哪些_java关键字有哪些?java关键字大全
- 用javacv提取视频中的音频数据
- 高校先行,科技部公示10个国家级区块链重点项目 | 产业区块链发展周报
- FIL存储服务器订单系统,开源存储系统Slate构建FIL检索市场
- 2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版
- 论文研读 —— 4. You Only Look Once Unified, Real-Time Object Detection (3/3)
- [200127] Java类初始化与实例初始化 - Thinking in Java学习日志
热门文章
- Convex Hull (ACM-ICPC 2018 沈阳赛区网络预赛) 存个公式
- AtCoder Regular Contest 059
- 【PKUSC2018】星际穿越【结论】【倍增dp】
- FFT:从入门到沉迷
- [BZOJ2616] SPOJ PERIODNI
- 牛客题霸 车站建造问题 C++题解/答案
- 牛客网 【每日一题】5月28日题目精讲 Protecting the Flowers
- [学习笔记] 二次剩余
- RMQ问题:与众不同(st表的高端应用)
- codeforces1167 E. Range Deleting(双指针)