【发布时间】:2020-05-29 12:29:38
【问题描述】:
我有这样的结构
| Director1 | Manager1 | Employee1 |
| Director1 | Manager1 | Employee2 |
| Director1 | Manager2 | Employee3 |
| Director2 | Manager3 | Employee4 |
我像这样从 Db 获取这些数据到 Pojo
@Data
public class Workers {
private String directorName;
private String managerName;
private String employeeName;
}
DB 是非规范化的。
在 java 代码中我需要将此响应分组以不返回冗余数据。我的响应数据看起来像
@Data
public class WorkersResponse{
private String directorName;
...
private List<Manager> managers;
}
@Data
public class Manager{
private String manager;
...
private List<Employee> employee;
}
@Data
public class Employee{
private String employee;
...
}
通过分组我想接收列表。现在我想出了如何将导演分组:
Map<WorkersResponse, List<Workers >> collect = all.stream()
.collect(Collectors.groupingBy(v -> {
WorkersResponse workersResponse= new WorkersResponse();
workersResponse.setDirector(v.getDirectorName());
return workersResponse;
}));
但是我应该如何用经理和员工填充列表呢?
【问题讨论】:
-
你只需要名字吗?
标签: java java-stream grouping