I’m using ModelMapper for object mapping in my Java application. However, I encountered an issue where null objects inside the source object are still being mapped to the destination object. How can I configure ModelMapper to skip mapping of null objects?
Here is my dto,
@Getter
@Setter
public class OperationDto extends BaseDto {
private Long operationNo;
private EnumOperationType operationType;
private EnumOperationStatus operationStatus;
private UserDto driverDto;
private UserDto operatorDto;
private VehicleDto vehicleDto;
private Date startDate;
private Date endDate;
private Date targetDate;
private LocationDto fromLocationDto;
private LocationDto toLocationDto;
private String description;
@Override
public Object newInstance() {
OperationDto operationDto = new OperationDto();
operationDto.setDriverDto(new UserDto());
operationDto.setOperatorDto(new UserDto());
operationDto.setVehicleDto(new VehicleDto());
operationDto.setFromLocationDto(new LocationDto());
operationDto.setToLocationDto(new LocationDto());
return operationDto;
}
}
and here is how I tried,
public List<OperationDto> getAllByFilter(OperationDto filterDto) throws TalyumException {
OperationDto initializedFilterDto = (OperationDto) new OperationDto().newInstance();
modelMapper.getConfiguration().setSkipNullEnabled(true);
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
initializedFilterDto = modelMapper.map(filterDto, OperationDto.class);
List<OperationEntity> operationEntityList = operationRepository.findAllByFilter(initializedFilterDto);
return operationEntityList.stream().map(dto -> modelMapper.map(dto, OperationDto.class)).toList();
}
Any help would be appreciated.
New contributor
Akcan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.