Java 和 MapStruct

标签 java spring mapstruct

我如何初始化字段中的列表并在此列表中添加一些值?

    @Mapper(componentModel = "spring")
public interface MapStructAdapter {

  @Mapping(source = "some", target = "some")
  @Mapping(expression = "java(new java.util.ArrayList<LegalEntity>())", target = "legalEntities")
  @Mapping(expression = "java(new my.some.package.LegalEntity())", target = "getLegalEntities().add()")
  @Mapping(source = "entityShortName", target = "legalEntities.legalEntity.shortName")
  Representative convert(Message message);
}

最佳答案

您应该能够在映射器中添加自己的转换方法。

https://mapstruct.org/documentation/stable/reference/html/#adding-custom-methods

示例,

@Mapper(componentModel = "spring")
public interface MapStructAdapter {

    @Mapping(source = "some", target = "some")
    @Mapping(source = "entityShortName", target = "legalEntities")
    Representative convert(Message message);

    default List<LegalEntity> toLegalEntities(String entityShortName) {
        LegalEntity legalEntity = new LegalEntity();
        legalEntity.setShortName(entityShortName);
        return Collections.singletonList(legalEntity);
    }
}

关于Java 和 MapStruct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59077100/

相关文章:

Java JNI - 将 C 中分配的资源与 java 对象相关联?

java - 数据库构建后运行数据脚本

java - 当目标具有与源同名的变量时,使用自定义源和目标变量的 @Mapping 无法按预期工作

java - Java中输出文件中XML属性的控制顺序

java - 将 pdf 内容放在 Apache PDFBox 中 Canvas 的中心

java - 从签名的 pdf 中获取原始内容

java - 不支持请求方法 POST || Spring 登录

Spring Boot YAML 配置

java - Mapstruct-找不到没有源的属性的映射

java - 递归映射时的 MapStruct 问题