spring-boot - 为什么 Mapstruct 不能生成字段映射
问题描述
我正在使用 mapstruct 来做两个 calsses 之间的映射: Candidate 和 CandidateDTO 。
我的映射器界面是这样的:
@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 字段都设为空,因为未生成映射字段。
请提供任何帮助。
解决方案
MapStruct 尚不支持开箱即用。在我们的问题跟踪器中查看问题mapstruct/mapstruct#674。
您可以做的是使用默认的自定义方法。
@Mapper
public interface CandidateMapper {
default CandidateDTO toCandidateDTO(Optional<CandidateEntity> candidateEntity) {
return toCandidateDTO(candidateEntity.orElse(null);
}
CandidateDTO toCandidateDTO(CandidateEntity candidateEntity);
}
推荐阅读
- c# - 如何在 CSV Helper 中有一个列在 c# 中接受逗号(,)
- r - 使用字典定义更新包含英语单词/词汇表(tsv 文件)的表
- android - 如何为多个设备的 P2P 移动应用程序进行蓝牙测试?
- jquery - bootstrap-fullscreen-select 如何分别触发每个选择选项的 onClose 事件?
- python - 在消息中使用@hideItBot
- angular - Angular - 如何修复“y”类型上不存在属性“x”.ngtsc(2339)
- c++ - 'g++' 不是内部或外部命令、可运行程序或批处理文件。视觉工作室代码
- r - 在 R 中的成对绘图空间图像中嵌入绘图
- splunk - Splunk 结果分组
- reactjs - Material ui/redux-form 框架中的评分星域