Use spring Mapper to map object of Map - Java

I'm facing some difficulties while trying to use Mapper annotation functionality of spring. I would like to use the mapper to map an object of Map in java as follows:

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;
}    

Error:

Can't map property "java.util.Map> hostsList" to " HostsCounters hostsList". Consider to declare/implement a mapping method

Upvotes: 1

Views: 1126

Answers (1)

Pavel Shabalin
Pavel Shabalin

Reputation: 76

Just use:

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

But I would strongly advise you to get rid of identical names with different meanings:

HostsCounters hostsList -> HostsCounters hostsLists

Upvotes: 1

Related Questions