[英]MapStruct map Set<Dto> to Set<Enum>
I want to convert UserDto to User我想将 UserDto 转换为 User
UserDto:用户名:
public class UserDto {
private String username;
private String password;
private Set<RoleDto> roles;
//getters and setters
}
RoleDto:作用:
public class RoleDto {
private String name;
//getters and setters
}
User:用户:
public class User {
private String username;
private String password;
private Set<Role>;
//getters and setters
}
Role:角色:
public enum Role {
private String name;
//getters
}
My mapper class:我的映射器类:
@Mapper(componentModel = "spring")
public interface UserMapper {
UserDto toDto(User user);
User fromDto(UserDto userDto); //error here
}
But after maven install
i had problem:但是在maven install
我遇到了问题:
Error: java: Role does not have an accessible parameterless constructor.
Because Role is enum, I can't create public constructor.因为 Role 是枚举,所以我无法创建公共构造函数。 I tried use:我尝试使用:
@Mapping(source = "roles", targer = "roles")
User fromDto(UserDto userDto);
And和
@Mapping(source = "userDto.roles", targer = "user.roles")
User fromDto(UserDto userDto);
But it had no effect.但它没有效果。 How can i fix it?我该如何解决?
I took the advice of @Rup and modified my Role class to:我接受了@Rup 的建议并将我的 Role 类修改为:
public class Role {
private String name;
// getters and setters
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.