将spring服务列表转换为另一个Entity作为响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将spring服务列表转换为另一个Entity作为响应相关的知识,希望对你有一定的参考价值。

我有一个userService

entityDTO = (EntityDto) userService.getAllUsersOfCompany(companyId);

它将返回UserDTO列表

在此列表中实体有很多字段Like(userId,name,address,place ..... etc)

但我只想要userIdname

因为我创造了一个EntityDto

public class EntityDto {

    private String Id;
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return Id;
    }

    public void setId(String id) {
        Id = id;
    }

}

现在我需要将List<EntityDto>映射到List<UserDTO>

推土机映射有可能吗???

答案

对于Java 8,按照@TouzeneMohamedWassim的建议,但对于java <8,它们的api中没有流和地图

所以你应该使用传统的循环方法(比如创建一个循环抛出列表并返回新实体的方法),如下所示:

private static List<EntityDto> convertEntityDto(List<UserDTO> users) {

    List<EntityDto> newList = new ArrayList<>();

    for (UserDTO usr : users) {

        EntityDto entity = new EntityDto();
        entity.setId(usr.getId());
        entity.setName(usr.getName());

        newList.add(entity);
    }

    return newList;
}

然后调用你的方法:

List<EntityDto> listEntityDTO  = 
    convertEntityDto(serService.getAllUsersOfCompany(companyId));
另一答案

如果您使用的是JAVA8或+,则可以像这样使用流:

List<EntityDto> users = new ArrayList<>();
userService.getAllUsersOfCompany(companyId).stream().forEach(
entity -> {
   users.add(new EntityDto(entity.getId(), entity.getName()))
});

以上是关于将spring服务列表转换为另一个Entity作为响应的主要内容,如果未能解决你的问题,请参考以下文章

将 Python 列表值的平均值转换为另一个列表

在 Python 中查找将一个集群列表转换为另一个集群的映射

通过HQL将对象列表转换为另一种类型

在给定列表中搜索将字符串转换为另一个字符串的最短方法,一次一个字符

如何通过元素的属性将集合转换/转换为另一个集合?

如何将对象从一个 JpaRepository 转换为另一个 JpaRepository