ModelMapper(http://modelmapper.org/)是否支持排除属性?如果值为null。
我刚刚找到了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...());
}
});
在我的情况下,我有很多属性和冗长。 如果映射属性从它们中为空,如何排除它们。 有更舒适的解决方案吗?
感谢。
答案 0 :(得分:5)
您可以使用以下配置将ModelMapper配置为忽略所有null属性:
modelMapper.getConfiguration().setPropertyCondition(Conditions.isNotNull());
例如,对于目标对象的部分更新非常有用,您只希望从源对象复制那些非空的属性。