我在Source和Target类下面,我正在使用lombok生成吸气剂和吸气剂
public class Target {
private String name;
private String newName;
}
public class Source {
private String name;
}
并说我是否要将Source.name映射到Target.newName 我正在下面的Mapper类中使用@Mapping来指定源变量和目标变量。
但是一旦我编译代码并检查生成的ClassMapperImpl 它是将Source.name映射到Target.name而不是Target.new名称
@Mapper
public interface ClassMapper {
@Mapping(source = "name", target = "newName")
Target sourceToTarget(Source s);
}
答案 0 :(得分:1)
我认为尝试时它们都被映射了
public class ClassMapperImpl implements ClassMapper {
@Override
public Target sourceToTarget(Source s) {
if ( s == null ) {
return null;
}
Target target = new Target();
target.setNewName( s.getName() );
target.setName( s.getName() );
return target;
}
}
请在name
属性上使用忽略。
@Mapper
public interface ClassMapper {
@Mapping(source = "name", target = "newName")
@Mapping(ignore = true, target = "name")
Target sourceToTarget(Source s);
}