Я пытаюсь сопоставить исходный объект, свойство которого установлено на null
, с целевым объектом, для которого это свойство установлено с другим объектом.
Ожидаемым результатом будет то, что свойство целевого объекта будет null
после сопоставления. Вместо этого это свойство устанавливается на объект, а все его свойства устанавливаются на null
.
. Вот пример:
public class ModelMapperTest {
public static void main(String[] args) {
ModelMapper modelMapper = new ModelMapper();
User user = new User();
user.setStatus(null);
StatusDto statusDto = new StatusDto();
statusDto.setId(1);
statusDto.setName("Active");
UserDto userDto = new UserDto();
userDto.setStatus(statusDto);
// user.status=null, userDto.status=StatusDto(id=1, name="Active")
modelMapper.map(user, userDto);
System.out.println("user = " + user);
System.out.println("userDto = " + userDto);
}
@Getter
@Setter
@ToString
public static class User {
private Status status;
}
@Getter
@Setter
@ToString
public static class Status {
private Integer id;
private String name;
}
@Getter
@Setter
@ToString
public static class UserDto {
private StatusDto status;
}
@Getter
@Setter
@ToString
public static class StatusDto {
private Integer id;
private String name;
}
}
Вывод:
user = ModelMapperTest.User(status=null)
userDto = ModelMapperTest.UserDto(status=ModelMapperTest.StatusDto(id=null, name=null))
Можно ли как-то настроить сопоставление модели для установки UserDto.status
на ноль?