Orika HashMap to Bean устанавливает нулевые значения для отсутствующих ключей
Я использую Orika в качестве картографа объектов в моих проектах Spring.
Для частичных обновлений я хотел бы отобразить HashMap (содержащий обновленные пары ключ-значение) к существующему Бину. Нулевые значения в HashMap должны быть сопоставлены с bean-компонентом.
Orika можно настроить с помощью mapNulls(true|false). Если задано значение true, все поля в целевом компоненте, которые недоступны в качестве ключа на исходной карте, будут иметь нулевое значение. Если задано значение false, ни одно поле в целевом компоненте не будет установлено равным нулю, независимо от того, есть ключ на исходной карте с нулевым значением или нет.
Я хочу иметь возможность передавать нулевые значения из карты в бин и игнорировать отображение, если нет ключа.
Источник HashMap:
Map<String, Object> newValues = new HashMap<>();
newValues.put("firstName", "John");
newValues.put("lastName", null);
Целевой боб:
public class User {
private String firstName;
private String lastName;
private String title;
//getters and setters...
}
Отображение:
User user = new User();
user.setFirstName("Bob");
user.setLastName("Doe");
user.setTitle("Mr.");
mapper.map(newValues, user);
Результат (с mapNulls(true)):
firstName: John
lastName: null
title: null --> Should not be changed but set to null as not present in the HashMap
Результат (с mapNulls(false)):
firstName: John
lastName: Doe --> Should be set to null but null values are ignored
title: Mr.