在ModelMapper中全局跳过字段

all*_*m93 3 java jax-rs modelmapper

我正在使用ModelMApper将对象从DTO映射到Impl - 在反序列化对象时.这与JAxRS结合使用.当用户发出POST/PUT请求时,我不希望映射"id".

我需要跳过所有映射的"id"字段.我不想一个接一个地做这个,因为没有必要为所有类显式地图.如何配置映射器以跳过从所有DTO到Impls映射的所有"id"字段.

谢谢

Jon*_*han 8

一种方法是使用条件来有条件地映射(或不)id属性.像这样的东西(未经测试):

Condition skipIds = new Condition() {
    public boolean applies(MappingContext<Object, Object> context) {
        return !context.getMapping().getLastDestinationProperty().getName().equals("id");
    }
};

modelMapper.getConfiguration().setPropertyCondition(skipIds);
Run Code Online (Sandbox Code Playgroud)

这将设置skipIds要为所有属性全局使用的条件,以便将跳过值到任何名为"id"的目标属性的映射.