java - 如何从 Modelmapper 中排除整个属性(如果它们为空)

标签 java mapper modelmapper

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

就我而言,我有很多属性(property)和冗长。 如果它们全部为空,如何排除映射属性。 有没有更舒服的解决方案?

谢谢。

最佳答案

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

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

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

关于java - 如何从 Modelmapper 中排除整个属性(如果它们为空),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45451025/

相关文章:

java - 为什么 JEditorPane 不显示用 HTML 编写的图像?

java - 如何使用 ASM 读取 Java 类方法注释值

java - ModelMapper:如何处理枚举的空值

java - maven 构建错误 : package org. apache.http 不存在

java - Java 桌面应用程序中的 RESTful Web 服务

java - EqualsBuilder 用作属性比较器

java - Hadoop 作业制定,将 ArrayList<String> 传递给 Mapper()

java - Hadoop 中的作业和任务调度

hadoop - 以编程方式获取总映射并减少hadoop的时间

java - 在托管 bean 中使用 ModelMapper 库的自定义映射会导致 NullPointerException