如果源在MapStruct中为null,则将父目​​标设置为null

问题描述

对于我来说,找到的不是一个非常优雅的解决方案,而是可行的解决方案。

首先将接口更改为抽象类,然后添加 @AfterMapping

@Mappings({
        @Mapping(source = "id", target = "id"),
        @Mapping(source = "childId", target = "child.id")
})
public abstract Entity objectDtoToEntity(ObjectDTO objectDTO);


@AfterMapping
public Entity doAfterMapping(@MappingTarget Entity entity) {
    if (entity != null && entity.getChild().getId() == null) {
        entity.setChild(null);
    }
    return entity;
}

解决方法

我有以下映射

@Mappings({
        @Mapping(source = "id",target = "id"),@Mapping(source = "childId",target = "child.id")
})
Entity objectDtoToEntity(ObjectDTO objectDTO);

我如何配置我的Mapper或Mappings,以便当childId为null时,将目标Entity.child设置为null而不是Entity.child.id?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”