Используйте Spring Mapper для отображения объекта Map - Java - PullRequest
1 голос
/ 09 апреля 2019

Я сталкиваюсь с некоторыми трудностями при попытке использовать функциональность аннотации Mapper в Spring.Я хотел бы использовать сопоставитель для сопоставления объекта Map в Java следующим образом:

HostCounters:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class HostsCounters {
    private Map<String,Map<String,Long>> hostsList;
}

Mapper:

@Mapper(componentModel = "spring")
public interface ResponseMapper {
    GeneralResponse toResponse(SevCount sevCount, HostsCounters hostsList, List<RegDAO> Reg);
}

GeneralRespone:

@Data
@NoArgsConstructor
public class GeneralResponse {
    private List<RegDAO> Reg;
    private HostsCounters hostsList;
    private SevCount sevCount;
}    

Ошибка:

Невозможно отобразить свойство "Java.util.Map> hostsList "в" HostsCounters hostsList ".Рассмотрим объявление / реализацию метода отображения

1 Ответ

1 голос
/ 09 апреля 2019

Просто используйте:

@Mapping(source = "hostsList", target = "hostsList")
GeneralResponse toResponse(SevCount sevCount, HostsCounters hostsList, List<RegDAO> Reg);

Но я настоятельно рекомендую вам избавиться от идентичных имен с разными значениями:

HostsCounters hostsList -> HostsCounters hostsLists

...