[英]java- dto to model convert Error
我有dto和模型層。並且我想像這樣的代碼將dto轉換為模型層。如何解決此錯誤?我需要我所有的吸氣劑和吸氣劑
型號/旅行艙
public Travel convert(TravelDTO dto) {
this.setTravelID(dto.getTravelID());
this.setTravelCost(dto.getTravelCost());
this.setTravelStart(dto.getTravelStart());
this.setTravelEnd(dto.getTravelEnd());
this.setLocation(dto.getLocation());
this.setTravelPurpose(dto.getTravelPurpose());
this.setUser(new User().convert(dto.getUser()));
return this;
}
dto / travelDTO類
public TravelDTO convert(Travel entity) {
this.setTravelID(entity.getTravelID());
this.setTravelCost(entity.getTravelCost());
this.setTravelStart(entity.getTravelStart());
this.setTravelEnd(entity.getTravelEnd());
this.setLocation(entity.getLocation());
this.setTravelPurpose(entity.getTravelPurpose());
this.setUser(new UserDTO().convert(entity.getUser()));
return this;
}
userDto /轉換代碼
public UserDTO convert(User entity) {
this.setUserID(entity.getUserID());
this.setFirstName(entity.getFirstName());
this.setLastName(entity.getLastName());
this.setManagerId(entity.getManagerId());
this.setPassword(entity.getPassword());
this.setRegNumber(entity.getRegNumber());
this.setUserName(entity.getUserName());
this.setDepartment(new DepartmentDTO().convert(entity.getDepartment()));
this.setTravel(new TravelDTO().convert(entity.getTravel()));
return this;
}
錯誤消息解釋了問題:)。 它說entity.getUser()返回一個用戶列表。 但是該方法接受一個User對象。
問題是您的entity.getUser()返回List,而您的UserDTO的convert方法則期望單個User模型對象。
從屏幕截圖中可以看到,UserDTO.convert方法接受類型為User的參數,並且您嘗試傳遞類型為List的參數。 我猜,可能的解決方案是使Travel.getUser()返回User而不是List。
更新
您可以遍歷用戶列表,將每個列表轉換為UserDTO,然后將其添加到集合中,然后將其作為參數傳遞給this.setUser。 像這樣的東西:
List<UserDTO> userDTOs = new ArrayList<>();
List<User> users = entity.getUser();
for (User user : users) {
UserDTO userDTO = new UserDTO.convert(user);
userDTOs.add(userDTO);
}
this.setUser(userDTOs);
並且請注意,您的TravelDTO類具有List<User> user
字段。 我猜應該是List<UserDTO> users
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.