java - 仅映射来自 DTO 的特定字段 -> 使用 Map-Struct 的模型

标签 java spring datamapper mapstruct

我有一个用例,我需要为特定字段映射或填充数据

例如:我有一个用户模型,我只需要将其转换为 UserDTO 用户名和帐户 ID 等特定字段。

型号:

public class UserCore{

        private String accountId;

        private String username;
        private String workEmail;
        private String firstName;
        private String password;
        private String hashedPassword;

    }

用户数据对象:

public class UserCoreDTO{

        private String accountId;

        private String username;
        private String workEmail;
        private String firstName;
        private String password;
        private String hashedPassword;

    }

ma​​p-struct 中有什么方法可以只将特定字段从源映射到目标

例如:

UserMapper mapper = Mappers.getMapper( UserMapper.class );
mapper.map(fieldsToFetch,source,destination);

最佳答案

这是一个来自 docs 的示例:

@Mapper
public interface FishTankMapper {

    @Mappings({
        @Mapping(target = "fish.kind", source = "fish.type"),
        @Mapping(target = "fish.name", ignore = true),
        @Mapping(target = "ornament", source = "interior.ornament"),
        @Mapping(target = "material.materialType", source = "material"),
        @Mapping(target = "quality.report.organisation.name", source = "quality.report.organisationName")
    })
    FishTankDto map( FishTank source );
}

ignore = true 可能适用于所有字段,而不仅仅是示例中的嵌套字段。

关于java - 仅映射来自 DTO 的特定字段 -> 使用 Map-Struct 的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46645941/

相关文章:

java - 如何保存上传的文件

java - Java和USB声卡中的声音问题

Java - 从输入流读取时卡住

java - 在不重新启动应用程序服务器或在运行时重新初始化 spring bean

java - 了解 Spring Data 接口(interface)

activerecord - C# .NET 中的数据映射器问题

java - XSD:通过 Jaxb 插件生成 POJO 时,不同命名空间的导入元素正在占用父级的目标命名空间

java - Spring:如何通过 Autowiring 设置多个属性?

ruby - 如何让 (Ruby) DataMapper 自定义类型工作?

php - 使用数据映射器模式,实体(领域对象)应该知道映射器吗?