Я сталкиваюсь с проблемой, когда один из моих картографов Mapstruct не использует другой картограф с @Mapper(uses =
Наши ValidationSupportNeedMapper
карты из сущностей в DTO.Один ValidationSupportNeedEntity
содержит свойство ActivityEntity
, и я пытаюсь сопоставить это свойство с Activity
DTO.
Поэтому проблема связана с вложенным объектом, то есть с ActivityEntity
по Activity
.
Вот исходный код:
С ValidationSupportNeedMapper.java :
@Mapper(uses = {LifecycleErrorMessagesMapper.class, ActivityMapper.class})
public interface ValidationSupportNeedMapper {
ValidationSupportNeed toValidationSupportNeed(ValidationSupportNeedEntity source);
...
С ActivityMapper.java :
@Component
public class ActivityMapper {
public Activity toActivity(ActivityEntity activity) {
//Implementation
}
public ActivityEntity toActivityEntity(Activity activity) {
//Implementation
}
}
С ValidationSupportNeedEntity.java (Entity)
public class ValidationSupportNeedEntity {
private ActivityEntity activityEntity;
С ValidationSupportNeed.java (DTO)
public class ValidationSupportNeed implements AutoValidated {
private Activity validationActivity;
Однако Mapstruct, похоже, игнорирует атрибут uses=
в аннотации @Mapper
и продолжает работу и генерирует собственный метод отображения следующим образом:
@Override
public ValidationSupportNeed toValidationSupportNeed(ValidationSupportNeedEntity source) {
if ( source == null ) {
return null;
}
ValidationSupportNeed validationSupportNeed = new ValidationSupportNeed();
validationSupportNeed.setValidationActivity( validationSupportNeedEntityToActivity( source ) );
...
}
protected Activity validationSupportNeedEntityToActivity(ValidationSupportNeedEntity validationSupportNeedEntity) {
if ( validationSupportNeedEntity == null ) {
return null;
}
Activity activity = new Activity();
activity.setCode( validationSupportNeedEntity.getValidationActivityCode() );
return activity;
}
Чего мне не хватает?Может кто-нибудь помочь, пожалуйста?
edit : ActivityMapper
не подключен автоматически в реализацию ValidationSupportNeedMapper
.