Как вызвать метод MapStruct из интерфейса в потоке Java ⇐ JAVA
-
Anonymous
Как вызвать метод MapStruct из интерфейса в потоке Java
Недавно я начал использовать в своем проекте инструмент сопоставления MapStruct. Раньше для сопоставления DTO -> Entity и наоборот я использовал собственный преобразователь, например:
public static CustomerDto toDto(Клиент-клиент) { вернуть isNull (клиент) ? нулевой : CustomerDto.builder() .id(customer.getId()) .name(customer.getName()) .surname(customer.getSurname()) .phoneNumber(customer.getPhoneNumber()) .email(customer.getEmail()) .customerStatus(customer.getCustomerStatus()) .username(customer.getUsername()) .NIP(customer.getNIP()) .строить(); } В случае, когда я все-таки пытался получить один единственный необязательный объект, мне удалось сопоставить свою сущность с dto следующим образом:
public Необязательный findOneById(конечный длинный идентификатор) { вернуть customerRepository.findById(id).map(CustomerMapper::toDto); } В настоящее время, как я уже упоминал ранее, я использую MapStruct, и проблема в том, что мой картограф это не класс, а интерфейс типа:
@Mapper общедоступный интерфейс CommentMapper { @Mappings({ @Mapping(target = "content", source = "entity.content"), @Mapping(target = "пользователь", источник = "entity.user") }) CommentDto commentToCommentDto (объект комментария); @Mappings({ @Mapping(target = "content", source = "dto.content"), @Mapping(target = "user", source = "dto.user") }) Комментарий commentDtoToComment(CommentDto dto); } Я хочу знать, можно ли как-то использовать этот метод интерфейса в потоке Gentle для сопоставления моего значения без переноса значений, например:
public Необязательный findCommentById(конечный длинный идентификатор) { Необязательный commentById = commentRepository.findById(id); return Необязательный.ofNullable(commentMapper.commentToCommentDto(commentById.get())); } Спасибо за любую помощь.
Недавно я начал использовать в своем проекте инструмент сопоставления MapStruct. Раньше для сопоставления DTO -> Entity и наоборот я использовал собственный преобразователь, например:
public static CustomerDto toDto(Клиент-клиент) { вернуть isNull (клиент) ? нулевой : CustomerDto.builder() .id(customer.getId()) .name(customer.getName()) .surname(customer.getSurname()) .phoneNumber(customer.getPhoneNumber()) .email(customer.getEmail()) .customerStatus(customer.getCustomerStatus()) .username(customer.getUsername()) .NIP(customer.getNIP()) .строить(); } В случае, когда я все-таки пытался получить один единственный необязательный объект, мне удалось сопоставить свою сущность с dto следующим образом:
public Необязательный findOneById(конечный длинный идентификатор) { вернуть customerRepository.findById(id).map(CustomerMapper::toDto); } В настоящее время, как я уже упоминал ранее, я использую MapStruct, и проблема в том, что мой картограф это не класс, а интерфейс типа:
@Mapper общедоступный интерфейс CommentMapper { @Mappings({ @Mapping(target = "content", source = "entity.content"), @Mapping(target = "пользователь", источник = "entity.user") }) CommentDto commentToCommentDto (объект комментария); @Mappings({ @Mapping(target = "content", source = "dto.content"), @Mapping(target = "user", source = "dto.user") }) Комментарий commentDtoToComment(CommentDto dto); } Я хочу знать, можно ли как-то использовать этот метод интерфейса в потоке Gentle для сопоставления моего значения без переноса значений, например:
public Необязательный findCommentById(конечный длинный идентификатор) { Необязательный commentById = commentRepository.findById(id); return Необязательный.ofNullable(commentMapper.commentToCommentDto(commentById.get())); } Спасибо за любую помощь.
Мобильная версия