Mapstruct условно создать и вложенный объект - PullRequest
1 голос
/ 07 февраля 2020

Я работаю с mapstruct и у меня проблема ниже -

У меня есть родитель DTO:

{
     "parentId":1,
      "child":{
       "id":1,
       "name":"firstBorn" 
       }
}

Это классы DTO и сервера:

 @Data
    public class ParentDTO {
        int parentId;
        ChildDto child; 
    } 
    @Data
    public class ChildDTO{
        int id;
        ChildDto child; 
    } 

POJO:

@Data
public class Parent{
    int parentId;
    Child child; 
} 
@Data
public class Child{
    int parentId;
    int id;
    String name;
}

, поэтому я использую Mapstruct для отображения между этими двумя:

@Mapper( unmappedTargetPolicy = ReportingPolicy.IGNORE)
class ParentMapper {
  @Mappings({
    @Mapping(source = "parentId", target = "child.parentid"), 
    @Mapping(source = "name", target = "child.name")

  })
  Parent map(ParentDto source);

}

Я хотел бы создать дочерний экземпляр, если и только если он существует в родительском, в противном случае я хотел бы, чтобы это было нулевым, как я могу достичь этой цели?

проблема возникает, когда ребенок в нулевом

{
"parentId":123
}
...