Как сопоставить Список с Объектом со списком в mapstructs - PullRequest
0 голосов
/ 21 марта 2020

Как я могу использовать MapStruct для создания картографа, который отображает список (мой источник) на объект со списком (место назначения)?

Мои исходные классы выглядят так:

class SourceB {
    private String name;
    private String lastname;
}

class SourceA { 
    private Integer id;
    private List<SourceB> bs;
}

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

class DestinationA {
    private Integer id;
    private DestinationAB bs;
}

class DestinationAB {
    private List<DestinationB> b;
}

class DestinationB {
    private String name;
    private String lastname;
}

Ожидаемый образец json:

источник:

{
  "id": 1,
  "bs": [
    {
      "name": "name1",
      "lastname": "last1"
    },
    {
      "name": "name2",
      "lastname": "last2"
    }
  ]
}

пункт назначения:

{
  "id": 1,
  "bs": {
    "b": [
      {
        "name": "name1",
        "lastname": "last1"
      },
      {
        "name": "name2",
        "lastname": "last2"
      }
    ]
  }
}

1 Ответ

0 голосов
/ 23 марта 2020

Это довольно просто. Просто поместите аннотацию @Mapping с указанными source и destination поверх метода отображения.

@Mapper
public interface SourceMapper {
    @Mapping(source = "bs", target = "bs.b")
    DestinationA sourceAToDestinationA(SourceA sourceA);
}
...