【问题标题】:Why Mapstruct cannot generate fields mapping为什么 Mapstruct 不能生成字段映射
【发布时间】:2019-10-10 14:22:51
【问题描述】:

我正在使用 mapstruct 来做两个 calsses 之间的映射:Candidate 和 CandidateDTO。

我的mapper界面是这样的:

@Mapper
public interface CandidateMapper {
    CandidateDTO toCandidateDTO(Optional<CandidateEntity> candidateEntity);
}

而生成的源码是这样的:

public class CandidateMapperImpl implements CandidateMapper {
    @Override
    public CandidateDTO toCandidateDTO(Optional<CandidateEntity> candidateEntity) {
        if ( candidateEntity == null ) {
            return null;
        }
        CandidateDTO candidateDTO = new CandidateDTO();
        return candidateDTO;
    }
}

我的问题是,在映射时,我将所有 DTO 字段都设为空,因为未生成映射字段。

请帮忙。

【问题讨论】:

    标签: spring-boot mapping mapstruct


    【解决方案1】:

    MapStruct 尚不支持开箱即用。在我们的问题跟踪器中查看问题mapstruct/mapstruct#674

    您可以做的是使用默认的自定义方法。

    @Mapper
    public interface CandidateMapper {
    
        default CandidateDTO toCandidateDTO(Optional<CandidateEntity> candidateEntity) {
            return toCandidateDTO(candidateEntity.orElse(null);
        }
    
        CandidateDTO toCandidateDTO(CandidateEntity candidateEntity);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 2019-03-14
      • 1970-01-01
      • 2019-12-03
      相关资源
      最近更新 更多