简单类和具有继承的类之间的映射

时间:2020-07-23 14:36:20

标签: java mapstruct

我有两个类,例如:

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;
}

FileConfigurationFileType

public class FileConfiguration {
FileType fileType
}

现在我需要使用MapStruct编写三个映射器:

第一个简单易用-从FileFileDto的映射:

@Mapping(target = "fileType", source = "fileConfiguration.fileType")
  FileDto fromEntityToDto(final File entity);

第二个是从FileDtoFile。我想尝试类似的东西:

  @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批注中吗?还是还有其他方法?

0 个答案:

没有答案