ModelMapper - условие И провайдер - PullRequest
0 голосов
/ 31 октября 2019

Все -

Я пытаюсь создать «addmapping» с условием и провайдером ... Суть в том, что одно из моих значений - Мгновенное, и без провайдера оно взрывается. говорит мне, что у Instant нет конструктора по умолчанию (чего у него нет)

Я дошел до этого:

.addMappings (mapper -> {

            mapper.when(ctx -> customerSource(ctx).getEnableDuplicatePOChangedTime().isDirty())
                .<Instant>map(src -> src.getEnableDuplicatePOChangedTime().getValue(), (dest, v) -> dest.setEnableDuplicatePOChangedTime(v));  

            mapper.with(req -> req.getSource()).<Instant>map(src -> src.getEnableDuplicatePOChangedTime().getValue(), (dest, v) -> dest.setEnableDuplicatePOChangedTime(v));

})

Однако, похоже, что теперь это происходит, он пропускает условие все вместе - он отображает его, несмотря ни на что!

При отладке это, кажется, перезаписывает условие, устанавливая его в нуль.

Есть мысли ??

1 Ответ

0 голосов
/ 05 ноября 2019

Что ж, я, кажется, понял это, используя провайдера заранее и избавившись от отображений надстроек .... так что это будет что-то вроде этого

.setProvider(request -> {
                    CustomerPreferencesDirty source = CustomerPreferencesDirty.class.cast(request.getSource());
                    PreferencesByCustomer dest = new PreferencesByCustomer();
                    if (source.getEnableDuplicatePOChangedTime().isDirty()) {
                        dest.setEnableDuplicatePOChangedTime(source.getEnableDuplicatePOChangedTime().getValue());
                    return dest;
                })

, а затем я продолжус addMappings для свойств, отличных от этого .... Я хорошо с этим.

...