java - 使用 mapstruct 从 List<Object> 映射 List<String>

标签 java dto mapstruct

您好,我在使用 mapstruct 从子源类中设置 DTO 中的 List 操作时得到 null。有人可以帮我解决这个问题吗?请在这里找到我的代码

实体类:

public class Source {
    int id;
    String name;
    List<ChildSource> childSource;
    //getters and setters
}

public class ChildSource {
    String code;
    String action;
    //getters and setters   
}

目的地DTO:

public class TargetDTO{
    int sNo;
    String mName;
    List<String> actions;
    //getters and setters  
}

MApper 类:

@Mapper(componentModel = "spring")    
public abstract class SampleMapper {
        @Mappings({ 
            @Mapping(target = "id", source = "sno"),
            @Mapping(target = "name", source = "mNAme")
        })
        public abstract TargetDTO toDto(Source source);

        @IterableMapping(elementTargetType = String.class)
        protected abstract List<String> mapStringtoList(List<ChildSource> childSource);

        protected String mapChildSourceToString(ChildSource child) {
            return child.getAction();
        }
    }

但我的操作列表在目标 dto 中设置为 null。有人可以帮我吗?

最佳答案

你可以这样做。


@Mapper(componentModel = "spring")    
public abstract class SampleMapper {
        @Mappings({ 
            @Mapping(target = "id", source = "sno"),
            @Mapping(target = "name", source = "mNAme"),
            @Mapping(target = "actions", source = "childSource")
        })
        public abstract TargetDTO toDto(Source source);

        protected abstract List mapStringtoList(List childSource);

        protected String mapChildSourceToString(ChildSource child) {
            return child.getAction();
        }
    }

关于java - 使用 mapstruct 从 List<Object> 映射 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46598488/

相关文章:

spring - 在 Hibernate 实体上使用 DTO 映射避免 N+1

java - Mapstruct,从多个输入参数映射到嵌套对象

java - HTTP Status 500 - 请求处理失败;嵌套异常是 org.hibernate.HibernateException : No Hibernate Session bound to thread

java - Mapstruct:使用合格的 IterableMapping 映射列表属性

java - 无法使用 JDBC 连接到 Sql Server 数据库

java - 将抽象类扩展为枚举 - 策略模式

java - 将当前时区设置为@JsonFormat 时区值

java - 如何将持久对象映射到DTO?

java - MapStruct:抽象类的问题

java - Mapstruct:将对象内部的列表映射到对象列表