层级展示当前用户所在的部门,一个用户可以添加不同等级的多个部门

新手上路,请多包涵

问题描述

有个选择用户所在地区的功能,比如用户添加到了陕西省下面,他除了可以看到陕西省这个部门,还可以看到陕西省下面所有的部门以及子部门。如果只加在陕西省西安市,只能看见陕西省西安市和西安市下面的所有部门。如果加在西安市,又加在铜川市下面的一个县里,他可以看到陕西省下面的西安市和西安市下面的所有部门,还可以看到铜川市,但铜川市下面只能看到一个县。类似于企业微信选择通讯录功能。

问题出现的环境背景及自己尝试过哪些方法

我只实现了省市县,如果县下面有镇,镇下面有街道或者乡,有没有不用递归就可以实现的,尽量减少数据库操作,或者是把数据全取出来,用java递归。大家有什么具体实现的方法没有?

阅读 3.3k
2 个回答

这种不经常改变的列表,可以考虑进行缓存

递归的话,有些数据库是支持查询语句递归的,java 中递归也很简单,但你考虑好,你递归之后的返回数据是一个列表还是一个嵌套的树……

查出来这个级联数据是为了展示吧,如果图省事,直接找个树插件比如 ztree 这种可以帮你递归,前端渲染出父子关系,你后台 select all 就行了。

这种一般都是用缓存完成的,每次都查性能太差了

1):放入在Redis中
2):放入ServletContext域
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题