Регистрация сопоставления для всех других сопоставлений - PullRequest
0 голосов
/ 15 октября 2018

Есть ли способ зарегистрировать определение Mapper глобально для всех остальных Mappers, без необходимости что-либо добавлять к каждому Mapper ?

Вот наша проблема: у нас была ошибкав нашем проекте благодаря тому, что объекты типа java.util.Date по умолчанию обрабатываются в мапперах: они копируются из источника в цель, что делает их общими.В результате мы иногда непреднамеренно модифицировали исходные данные при изменении целевых данных.Нашим решением было создать картограф для дат (который создает новую дату для цели) и добавить его ко всем нашим картографам, используя:

@Mapper(uses= {DateMapper.class, ...})

Теперь наша проблема в том, что любой разработчик, который забудет добавитьDateMapper для нового Mapper приведет к повторению ошибки.Способ зарегистрировать его глобально будет более безопасным.

1 Ответ

0 голосов
/ 16 октября 2018

На данный момент (1.2.0.Final и 1.3.0.Beta1) это может быть достигнуто с помощью Shared Configurations .С помощью @MapperConfig вы можете определить общую конфигурацию, а затем использовать ее в своих средствах отображения (да, люди должны будут не забыть включить ее через @Mapper#config).

Если этого недостаточно, я бы предложил создатьпроблема в MapStruct система отслеживания проблем

...