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.

0 ответов

Другие вопросы по тегам