Java SpEL:将列表元素投影到映射

Java SpEL:将列表元素投影到映射,java,spring-el,Java,Spring El,我有一个SpringDataMongoDB管理的实体,它在其子集合中存储元素列表。为了通过SpringMVC只返回该实体的一个子集,我使用它来定制数据对象上的视图 可视化我的设置的简化示例: @Getter @Setter @Document(collection = "test") public class CompanyEntity { @Id private String id; private List<Employee> employees;

我有一个SpringDataMongoDB管理的实体,它在其子集合中存储元素列表。为了通过SpringMVC只返回该实体的一个子集,我使用它来定制数据对象上的视图

可视化我的设置的简化示例:

@Getter
@Setter
@Document(collection = "test")
public class CompanyEntity {

    @Id
    private String id;
    private List<Employee> employees;
    ...
}
视图是一个简单的界面,如下所示:

public interface CompanyView {

    String getId();
    @Value("#{target.employees.![name]}")
    List<String> getEmployeeNames();
}
公共接口公司视图{
字符串getId();
@值(“#{target.employees.![name]}”)
列出getEmployeeNames();
}
虽然我可以通过
{target.employees.![name]}
直接将员工的姓名投射到列表中,但我不知何故在尝试使用
employee.id
作为键,使用
employee.name
作为值,用映射替换当前代码时迷失了方向


这是可能的,还是我必须写一个答案?

好的,我想我已经找到了一个我满意的解决方案

为了创建以下内容:

@Value("#{target...}")
Map<String, String> getEmployees();
CompanyView
中,现在的定义是这样的:

@Value("#{target.employees}")
List<EmployeeView> getEmployees();
@Value(“#{target.employees}”)
列出getEmployees();

这只返回返回数据中有限的员工子集。

好的,我想我找到了一个满意的解决方案

为了创建以下内容:

@Value("#{target...}")
Map<String, String> getEmployees();
CompanyView
中,现在的定义是这样的:

@Value("#{target.employees}")
List<EmployeeView> getEmployees();
@Value(“#{target.employees}”)
列出getEmployees();
这只返回返回的数据中有限的员工子集