2016-01-06 4 views
1

У меня довольно большая фаза (~ 100 свойств), которая отображается на несколько небольших объектов. Может случиться так, что объекты с меньшими целевыми объектами имеют свойства с тем же именем, что и в моем исходном компоненте, но не с тем же смысловым значением.Может ли MapStruct не выполнять автоматические сопоставления?

Я хотел бы MapStruct вести себя в этом конкретном случае, чтобы отобразить только то, что я явно указываю с помощью аннотации @Mapping, а не выполнять обычное автоматическое сопоставление.

The MapStruct documentation говорит мне только это:

В сгенерированной реализации методы все считываемые свойства от типа источника (...) будут скопированы в соответствующее свойство в целевом типе (.. .).

Я не нашел никакой опции конфигурации, отключая это поведение. Можно ли это сделать?

+1

Вы можете вручную игнорировать поля с тем же именем в небольших фасолях, но не знаете, подходит ли это для вас –

ответ

3

Как указано в комментарии Мохамеда, вы можете явно игнорировать эти свойства.

Нет переключателя, как вы его описываете. Лично я, вероятно, написал бы это конкретное сопоставление из руки вместо явной настройки всех сопоставлений через аннотации. Конечно, вы по-прежнему выигрываете от преобразования типов и т. Д., Поэтому он может быть полезен, это действительно зависит от вашего варианта использования.

+0

Я сначала забыл о возможности игнорировать сопоставления; в документации упоминается только для обратных сопоставлений ... – pesche

 Смежные вопросы

  • Нет связанных вопросов^_^