簡體   English   中英

java-dto模型轉換錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM