将spring服务列表转换为另一个Entity作为响应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将spring服务列表转换为另一个Entity作为响应相关的知识,希望对你有一定的参考价值。
我有一个userService
entityDTO = (EntityDto) userService.getAllUsersOfCompany(companyId);
它将返回UserDTO
列表
在此列表中实体有很多字段Like(userId,name,address,place ..... etc)
但我只想要userId
和name
。
因为我创造了一个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 中查找将一个集群列表转换为另一个集群的映射