Java 将spring服务列表转换为另一个实体作为响应
我有一个用户服务Java 将spring服务列表转换为另一个实体作为响应,java,spring,spring-mvc,arraylist,Java,Spring,Spring Mvc,Arraylist,我有一个用户服务 entityDTO = (EntityDto) userService.getAllUsersOfCompany(companyId); 它将返回UserDTO的列表 在此列表中,实体有许多字段,如(用户ID、名称、地址、地点等) 但是我只想要userId和name 为此,我创建了一个EntityDto public class EntityDto { private String Id; private String name; public S
entityDTO = (EntityDto) userService.getAllUsersOfCompany(companyId);
它将返回UserDTO的列表
在此列表中,实体有许多字段,如(用户ID、名称、地址、地点等)
但是我只想要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
映射到List
推土机映射是否可能?如果您使用的是JAVA8或+,您可以像这样使用流:
List<EntityDto> users = new ArrayList<>();
userService.getAllUsersOfCompany(companyId).stream().forEach(
entity -> {
users.add(new EntityDto(entity.getId(), entity.getName()))
});
List users=new ArrayList();
userService.getAllUsersOfCompany(companyId).stream().forEach(
实体->{
添加(新的EntityDto(entity.getId(),entity.getName())
});
如果您使用的是JAVA8或+,您可以像这样使用流:
List<EntityDto> users = new ArrayList<>();
userService.getAllUsersOfCompany(companyId).stream().forEach(
entity -> {
users.add(new EntityDto(entity.getId(), entity.getName()))
});
List users=new ArrayList();
userService.getAllUsersOfCompany(companyId).stream().forEach(
实体->{
添加(新的EntityDto(entity.getId(),entity.getName())
});
对于Java 8,请遵循@TouzeneMohamedWassim mentiened
但是对于<8的java,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 newList=newarraylist();
for(UserDTO-usr:users){
EntityDto实体=新的EntityDto();
setId(usr.getId());
entity.setName(usr.getName());
newList.add(实体);
}
返回newList;
}
然后调用您的方法:
List<EntityDto> listEntityDTO =
convertEntityDto(serService.getAllUsersOfCompany(companyId));
List listEntityDTO=
转换为(serService.getAllUsersOfCompany(companyId));
对于Java 8,请遵循@TouzeneMohamedWassim mentiened
但是对于<8的java,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 newList=newarraylist();
for(UserDTO-usr:users){
EntityDto实体=新的EntityDto();
setId(usr.getId());
entity.setName(usr.getName());
newList.add(实体);
}
返回newList;
}
然后调用您的方法:
List<EntityDto> listEntityDTO =
convertEntityDto(serService.getAllUsersOfCompany(companyId));
List listEntityDTO=
转换为(serService.getAllUsersOfCompany(companyId));
立即执行:迭代列表并使用实体的字段来创建UserDTO对象或使用映射库(为什么不使用Spring中的哪一个,因为您已经在使用它)是的,有了dozer mapping,这是可能的。你能帮我吗?现在就做:迭代列表并使用实体的字段来创建UserDTO对象或使用映射库(为什么不使用Spring的哪一个,因为你已经在使用它)是的,使用dozer Mapping是可能的。你能帮我吗?你能告诉我如何使用java 7吗?是的,最好使用java 8流api。或者更好的List users=userService.getAllUsersOfCompany(companyId.stream().map(entity->new EntityDto(entity.getId(),entity.getName())。collect(collector.toList())代码>你能告诉我在java 7中怎么做吗?是的,最好使用java 8流api。或者更好的列表用户=userService.getAllUsersOfCompany(companyId).stream().map(entity->newentityDTO(entity.getId(),entity.getName()).collect(Collectors.toList())代码>