mapstruct, использующий маппер внутри другого, возвращает нуль в тест - PullRequest
0 голосов
/ 20 февраля 2020

Я использую mapstruct для генерации картографов. когда я вижу в сгенерированном коде, он автоматически связывает Mymapper в MainMapper, но при отладке он показывает, что myMapper имеет значение null. Когда я изменяю сгенерированный код

@Autowired MyMapper myMapper

на:

MyMapper myMapper=Mappers.getMaper(MyMapper.class)

, он работает, но это не то, что я хочу. Я хочу, чтобы он генерировался автоматически, как и ожидалось от фреймворка. nb: MainMapper использует MyMapper, а MyMapper использует Mapper2

mainMapper:

@Mapper(componentModel = "spring", 
    unmappedTargetPolicy = ReportingPolicy.IGNORE, 
    uses = MyMapper.class ,
    nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL)
public interface MainMapper {

    @Mappings({ @Mapping(target = "year", source = "Period.year") })
    Resource toResource(MyObject myObject);

    @Mapping(target = "Period.year", source = "year")
    MyObject toModel(Resource resource);
}

MyMapper:

@Mapper(componentModel = "spring", 
    unmappedTargetPolicy = ReportingPolicy.IGNORE,
    uses = Mapper2.class,
    nullValueMappingStrategy = NullValueMappingStrategy.RETURN_NULL)
public interface MyMapper {

    RequestResource toResource(Request request);

    Request toModel(RequestResource requestResource);
}

любая помощь приветствуется .

...