MapStruct生成无效的映射器



我得到了以下两个类(我试图从第1映射到第2):

@Data
@AllArgsConstructor
@NoArgsConstructor
public class RegisterRequestDto {
private String username;
private String firstName;
private String lastName;
private String password;
}

@Entity
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "users")
public class User extends BaseEntity {
@Column(name = "username")
private String username;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "password")
private String password;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "user_roles",
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "role_id", referencedColumnName = "id")}
)
private List<Role> roles;
}

我还得到了以下映射器:

@Mapper(componentModel = "spring")
public interface RegisterRequestDtoToUser {
User requestToUser(RegisterRequestDto requestDto);
}

这是我在我的构建中得到的。gradle文件:

implementation 'org.mapstruct:mapstruct:1.4.2.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final'

这是我从mapstruct中得到的映射器对于我上面提到的类,你可以看到它显然是无效的:

@Component
public class RegisterRequestDtoToUserImpl implements RegisterRequestDtoToUser {
@Override
public User requestToUser(RegisterRequestDto requestDto) {
if ( requestDto == null ) {
return null;
}
User user = new User();
return user;
}
}

出了什么问题,我该怎么解决?

添加以下依赖项后,一切正常:

implementation "org.mapstruct:mapstruct:${mapstructVersion}", "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}", "org.projectlombok:lombok:${lombokVersion}", "org.projectlombok:lombok-mapstruct-binding:${lombokMapstructBindingVersion}"

最新更新