5

ModelMapper( http://modelmapper.org/ ) 是否支持排除属性?如果值为空。

我刚刚找到了 PropertyMap。但这对我来说是一个约束。因为我必须描述我想要的特定属性。

像这样。

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...());
    }
});

就我而言,我有很多财产和冗长。如果它们都为空,如何排除映射属性。有更舒适的解决方案吗?

谢谢。

4

1 回答 1

20

您可以使用以下配置将 ModelMapper 配置为忽略所有为 null 的属性:

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

例如,对于您只想从源对象复制非空属性的目标对象的部分更新,它很有用。

于 2018-02-21T15:09:43.313 回答