我有两个类,例如:
public class FileDto {
private String name;
private Integer size;
private FileType fileType;
}
第二个是:
public class File extends AbstractFile {
private String name;
private Integer size;
}
哪里
public class AbstractFile {
private FileConfiguration fileConfiguration;
}
FileConfiguration
有FileType
:
public class FileConfiguration {
FileType fileType
}
现在我需要使用MapStruct编写三个映射器:
第一个简单易用-从File
到FileDto
的映射:
@Mapping(target = "fileType", source = "fileConfiguration.fileType")
FileDto fromEntityToDto(final File entity);
第二个是从FileDto
到File
。我想尝试类似的东西:
@Mapping(target = "fileConfiguration.fileType", source = "fileType")
File fromDtoToEntity(final FileDto dto);
但这给我一个错误:
error: incompatible types: FileConfigurationBuilder cannot be converted to FileConfiguration
target.setFileConfiguration( FileConfiguration.builder() );
第三个是:
@Mapping(target = "fileConfiguration.fileType", source = "fileType")
File updateEntity(final FileDto dto, @MappingTarget final File target);
您能告诉我如何将属性target
放在@Mapping
批注中吗?还是还有其他方法?