Явно ссылается на другие карточки в Mapstruct MapperJAVA

Программисты JAVA общаются здесь
Anonymous
Явно ссылается на другие карточки в Mapstruct Mapper

Сообщение Anonymous »

Что, если мне понадобится другой карт для создания реализации метода отображения? Тем не менее, это мне не очень помогло.

Код: Выделить всё

@Mapper(uses = EmailMapper.class,
componentModel = "spring",
injectionStrategy = InjectionStrategy.CONSTRUCTOR)
public abstract class UserMapper {

private final EmailMapper emailMapper; // another mapper

protected UserMapper(EmailMapper emailMapper) {
this.emailMapper = emailMapper;
}

public User toUser(UpdateUserRequestDto dto) {
User user = new User();
user.setId(dto.getId());
// referencing another mapper
user.setEmailData(emailMapper.toEmailDatas(dto.getEmailData(), user));
return user;
}
}
< /code>
@Mapper(componentModel = "spring",
injectionStrategy = InjectionStrategy.CONSTRUCTOR)
public interface EmailMapper {

@Mapping(source = "email", target = "email")
@Mapping(source = "user", target = "user")
EmailData toEmailData(String email, User user);

default List toEmailDatas(List emails, User user) {
List emailData = emails.stream()
.map(e -> toEmailData(e, user))
.toList();
return emailData;
}
}
< /code>
Вот что сгенерировано mapstruct: < /p>
@Component
public class UserMapperImpl extends UserMapper {

private final EmailMapper emailMapper;

@Autowired
public UserMapperImpl(EmailMapper emailMapper) {

this.emailMapper = emailMapper;
}
он объявил свое собственное поле вместо того, чтобы передавать карту Super () , как я предполагал.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... uct-mapper

Вернуться в «JAVA»