I have the following Mappings
@Mappings({
@Mapping(source = "id", target = "id"),
@Mapping(source = "childId", target = "child.id")
})
Entity objectDtoToEntity(ObjectDTO objectDTO);
How could I configure my Mapper or Mappings so when I have childId as null the target Entity.child would be set null not Entity.child.id?
Found not a very elegant solution as for me but working solution.
First change interface to abstract class then add @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;
}
来源:https://stackoverflow.com/questions/50887548/set-parent-target-to-null-if-source-is-null-in-mapstruct