首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中遍历列表列表

在java中遍历列表列表
EN

Stack Overflow用户
提问于 2017-12-02 17:16:08
回答 0查看 46关注 0票数 0

我有两个具有一对一关系的表UserRoles,如下所示。

代码语言:javascript
复制
User
_________________________________________
| Id  | user_name | full_name | creator |
_________________________________________
| 1   | a         | A         | a       |
| 2   | b         | B         | a       |
| 3   | c         | C         | a       |
| 4   | d         | D         | c       |
| 5   | e         | E         | c       |
| 6   | f         | F         | e       |
| 7   | g         | G         | e       |
| 8   | h         | H         | e       |
| 9   | i         | I         | e       |
|10   | j         | J         | i       |
_________________________________________

Roles
_______________________________________
| id | user_mgmt | others | user_id |
_______________________________________
| 1  | 1        | 1      | 1           |
| 2  | 0        | 1      | 2           |
| 3  | 1        | 0      | 3           |
| 4  | 0        | 1      | 4           |
| 5  | 1        | 1      | 5           |
| 6  | 0        | 1      | 6           |
| 7  | 0        | 0      | 7           |
| 8  | 0        | 0      | 8           |
| 9  | 1        | 0      | 9           |
________________________________________

Roles表具有boolean列,因此如果User具有user_mgmt角色,则他可以添加许多用户(用户可以添加多少用户并不确定)。我想获取用户及其子用户创建的所有用户(a是父用户,c是a的子用户,e是c的子用户)。

下面是我获取用户的代码

代码语言:javascript
复制
public void loadUsers(){
  List<Users> users = new ArrayList<>();

  String creator = user.getUserName();
  List<Users> createdUsers = userService.getUsersByCreator(creator);
  for(Users user : createdUsers) {
    Roles role = createdUsers.getRoles();
    if(role.isEmpMgnt()){
      users.add(user);
      loadUsers();
    }
  }
}

这给了我一个堆栈溢出错误。如果我不递归地调用loadUsers(),它只返回一个子结果。那么,对此有什么解决方案吗?提前感谢您的帮助。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47606311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档