Mapstruct: сопоставить поле с однострочным значением (возвращаемое значение) ⇐ JAVA
-
Гость
Mapstruct: сопоставить поле с однострочным значением (возвращаемое значение)
Вот мой картограф:
@Mapper общедоступный интерфейс DocumentMapper { @Mapping(source = «uuid», target = «id») net.gencat.transversal.espaidoc.domain.model.document.DocumentId toDomainModel (String uuid); @InheritInverseConfiguration Строка toPersistenceModel(net.gencat.transversal.espaidoc.domain.model.document.DocumentId id); } Класс net.gencat.transversal.espaidoc.domain.model.document.DocumentId:
пакет net.gencat.transversal.espaidoc.domain.model.document; импортировать java.util.UUID; импортировать ломбок.AllArgsConstructor; импорт ломбок.Builder; импортировать ломбок.EqualsAndHashCode; импортировать ломбок.Getter; импортировать ломбок.NonNull; импортировать ломбок.ToString; @Getter @AllArgsConstructor @EqualsAndHashCode @Нанизывать @Builder публичный класс DocumentId { частный окончательный идентификатор UUID; } Как видите, я пытаюсь сопоставить «DocumentId.id» со строкой.
MapStruct хорошо генерирует toDomainModel, но не работает с toPersistenceModel:
@Override public DocumentId toDomainModel (String uuid) { если ( uuid == null ) { вернуть ноль; } DocumentId.DocumentIdBuilder documentId = DocumentId.builder(); если ( uuid != ноль ) { documentId.id( UUID.fromString(uuid)); } вернуть documentId.build(); } @Override общественная строка toPersistenceModel (идентификатор DocumentId) { если ( идентификатор == ноль ) { вернуть ноль; } Строка строка = новая строка(); возвращаемая строка; } Как я могу указать Mapstruct правильно сопоставить DocumentId.id с одним значением?
Есть идеи?
Вот мой картограф:
@Mapper общедоступный интерфейс DocumentMapper { @Mapping(source = «uuid», target = «id») net.gencat.transversal.espaidoc.domain.model.document.DocumentId toDomainModel (String uuid); @InheritInverseConfiguration Строка toPersistenceModel(net.gencat.transversal.espaidoc.domain.model.document.DocumentId id); } Класс net.gencat.transversal.espaidoc.domain.model.document.DocumentId:
пакет net.gencat.transversal.espaidoc.domain.model.document; импортировать java.util.UUID; импортировать ломбок.AllArgsConstructor; импорт ломбок.Builder; импортировать ломбок.EqualsAndHashCode; импортировать ломбок.Getter; импортировать ломбок.NonNull; импортировать ломбок.ToString; @Getter @AllArgsConstructor @EqualsAndHashCode @Нанизывать @Builder публичный класс DocumentId { частный окончательный идентификатор UUID; } Как видите, я пытаюсь сопоставить «DocumentId.id» со строкой.
MapStruct хорошо генерирует toDomainModel, но не работает с toPersistenceModel:
@Override public DocumentId toDomainModel (String uuid) { если ( uuid == null ) { вернуть ноль; } DocumentId.DocumentIdBuilder documentId = DocumentId.builder(); если ( uuid != ноль ) { documentId.id( UUID.fromString(uuid)); } вернуть documentId.build(); } @Override общественная строка toPersistenceModel (идентификатор DocumentId) { если ( идентификатор == ноль ) { вернуть ноль; } Строка строка = новая строка(); возвращаемая строка; } Как я могу указать Mapstruct правильно сопоставить DocumentId.id с одним значением?
Есть идеи?
Мобильная версия