TransWikia.com

Как использовать mapstruct если одно из полей объекта это list который тоже конвертируется

Stack Overflow на русском Asked by Padawan on September 27, 2020

Есть 2 объекта, они идентичны. Но один определен в сторонней библиотеке, которая вызывается через rest моего проекта.

Т.е. мне нужно сохранить в моем объекте, объект полученный через rest.

Схема объекта и мапперов:

@Mapper
public interface ResponseConverter {
    ResponseConverter INSTANCE = Mappers.getMapper(ResponseConverter .class);
    @Mapping(source = "source.code", target = "code")
    @Mapping(source = "source.message", target = "message")
    @Mapping(source = "source.statuses", target = "statuses")
    ResponseConverter toRfModel(ru...fromREST...model.ResponseConverter source);
}

@Mapper
public interface StatusConverter {
    StatusConverter INSTANCE = Mappers.getMapper(StatusConverter.class);
    @Mapping(source = "source.paymentId", target = "paymentId")
    @Mapping(source = "source.statusCode", target = "statusCode")
    Status toRfModel(ru..fromREST...Status source);
}

Сам объект:

public class Response { 
    private String code; 
    private String message; 
    private List<Status> statuses; 
}

Как правильно настроить мапинг для полей private List<Status> statuses?

Сейчас при вызове ResponseConverter.INSTANCE.toRfModel(response_from_rest); падает ошибка Handler dispatch failed; nested exception is java.lang.ExceptionInInitializerError

One Answer

Необходимо прописать отдельный метод конвертации коллекции:

List<Target> sourceListToTargetList(List<Source> sourceList);

Более подробно можно почитать в официальной документации - Mapping collections

Correct answer by Alexandr on September 27, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP