#java #spring #jpa #mapper
#java #spring #jpa #mapper
Вопрос:
Я сталкиваюсь с некоторыми трудностями при попытке использовать функциональность аннотации картографа spring. Я хотел бы использовать mapper для отображения объекта Map в Java следующим образом:
Счетчики хостов :
@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);
}
Общий ответ:
@Data
@NoArgsConstructor
public class GeneralResponse {
private List<RegDAO> Reg;
private HostsCounters hostsList;
private SevCount sevCount;
}
Ошибка:
Не удается сопоставить свойство «java.util.Map> hostsList» с «HostsCounters hostsList». Подумайте о том, чтобы объявить / реализовать метод сопоставления
Ответ №1:
Просто используйте:
@Mapping(source = "hostsList", target = "hostsList")
GeneralResponse toResponse(SevCount sevCount, HostsCounters hostsList, List<RegDAO> Reg);
Но я бы настоятельно посоветовал вам избавиться от одинаковых имен с разными значениями:
HostsCounters hostsList -> HostsCounters hostsLists