how to exclude whole property if they are null from Modelmapper

Brady picture Brady · Aug 2, 2017 · Viewed 7.8k times · Source

Does ModelMapper(http://modelmapper.org/) support what exclude property? If the value is null.

I just found PropertyMap out. but It is a constraint to me. because I have to describe a specific property that I want.

Like this.

ModelMapper modelMapper = new ModelMapper();
modelMapper.addMappings(new PropertyMap<TestObject, TestObject>() {
    @Override
    protected void configure() {
        when(Conditions.isNull()).skip().setName(source.getName());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
        when(Conditions.isNull()).skip().set...(source.get...());
    }
});

In my case, I have a lot of property and verbose. How to exclude mapping property if they are null from all them. Is there more comfortable solution?

thanks.

Answer

mapm picture mapm · Feb 21, 2018

You can configure ModelMapper to ignore all properties that are null with the following configuration:

modelMapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());

It is useful, for example, for partial updates of a target object where you only want to copy those properties from the source object that are not null.