Я использую 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);
}
любая помощь приветствуется .