Java 简单类和继承类之间的映射
我有两门课,比如:Java 简单类和继承类之间的映射,java,mapstruct,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 FileConfig
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 FileConfiguration {
FileType fileType
}
现在我需要使用MapStruct编写三个映射器:
第一种方法很简单,可以很好地从文件
映射到文件到
:
@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
注释中吗?或者还有其他方法吗?我想,您使用的是Lombok这样的框架吗?在AbstractFile中是否有使用FileConfiguration.Builder作为参数的setter?如果是这样,mapstruct不知道如何准备代码。您能包含类的所有getter/setter吗?我想,您使用的是Lombok这样的框架吗?您在AbstractFile中有一个setter,它使用FileConfiguration.Builder作为参数吗?如果是这样,mapstruct不知道如何准备代码。你能包括你的类的所有getter/setter吗?
@Mapping(target = "fileConfiguration.fileType", source = "fileType")
File updateEntity(final FileDto dto, @MappingTarget final File target);