一次性加载树结构数据表 mapper加载
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                一次性加载树结构数据表   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加载的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: mmall工程生成dao层的插件出错了出
- 下一篇: 怎么免费建设个人网站(怎么免费建设个人网
