Я пытаюсь написать класс преобразователя с помощью Mapstruct, который использует другой вложенный преобразователь.
Когда я определяю метод сопоставления в стиле слияния с целью сопоставления, сгенерированный код использует вложенный преобразователь, но он не присваивает возвращаемое значение вложенного преобразователя соответствующему свойству в целевом объекте. Вместо этого предполагается, что вложенный сопоставитель просто изменяет параметр назначения, что нарушает неизменяемость экземпляра NestedDestination.
Есть ли способ заставить Mapstruct присвоить возвращаемое значение вложенный картограф?
Приведенные ниже фрагменты иллюстрируют то, чего я пытаюсь достичь.
@Mapper(uses = {NestedMapper.class})
public abstract class Mapper {
abstract Destination map(final Source source, @MappingTarget Destination original);
}
@Mapper
public abstract class NestedMapper {
abstract NestedDestination map(final NestedSource source, @MappingTarget NestedDestination original);
}
@Generated
public class MapperImpl extends Mapper {
private NestedMapper nestedMapper;
@Override
Destination map(Source source, Destination original) {
if ( source == null ) {
return original;
}
if ( source.getProperty() != null ) {
if ( original.getProperty() == null ) {
original.setProperty( new NestedDestination() );
}
// I expect the line below to be
// original.setProperty(nestedMapper.map( source.getProperty(), original.getProperty() ));
nestedMapper.map( source.getProperty(), original.getProperty() );
}
else {
original.setProperty( null );
}
return original;
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... he-destina
Как я могу заставить Mapstruct назначить результат вложенного картографа месту назначения при предоставлении цели сопост ⇐ JAVA
Программисты JAVA общаются здесь
1728571600
Anonymous
Я пытаюсь написать класс преобразователя с помощью Mapstruct, который использует другой вложенный преобразователь.
Когда я определяю метод сопоставления в стиле слияния с целью сопоставления, сгенерированный код использует вложенный преобразователь, но он не присваивает возвращаемое значение вложенного преобразователя соответствующему свойству в целевом объекте. Вместо этого предполагается, что вложенный сопоставитель просто изменяет параметр назначения, что нарушает неизменяемость экземпляра NestedDestination.
Есть ли способ заставить Mapstruct присвоить возвращаемое значение вложенный картограф?
Приведенные ниже фрагменты иллюстрируют то, чего я пытаюсь достичь.
@Mapper(uses = {NestedMapper.class})
public abstract class Mapper {
abstract Destination map(final Source source, @MappingTarget Destination original);
}
@Mapper
public abstract class NestedMapper {
abstract NestedDestination map(final NestedSource source, @MappingTarget NestedDestination original);
}
@Generated
public class MapperImpl extends Mapper {
private NestedMapper nestedMapper;
@Override
Destination map(Source source, Destination original) {
if ( source == null ) {
return original;
}
if ( source.getProperty() != null ) {
if ( original.getProperty() == null ) {
original.setProperty( new NestedDestination() );
}
// I expect the line below to be
// original.setProperty(nestedMapper.map( source.getProperty(), original.getProperty() ));
nestedMapper.map( source.getProperty(), original.getProperty() );
}
else {
original.setProperty( null );
}
return original;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79074568/how-can-i-force-mapstruct-to-assign-the-result-of-a-nested-mapper-to-the-destina[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия