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

我有以下映射

@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?

回答:

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

首先将接口更改为抽象类,然后添加 @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;

}

以上是 如果源在MapStruct中为null,则将父目​​标设置为null 的全部内容, 来源链接: utcz.com/qa/413986.html

回到顶部