是否可以为嵌套映射器指定限定符,而不必为特定类型的bean的每个实例指定限定符?
一些代码可以说明我的观点。我有一个类似的父对象:
public class ParentDTO {
ChildDTO childA;
ChildDTO childB;
ChildDTO childC;
// getters, setters, etc.
}
我有一个ChildMapper,其中包含多个映射:
@Mapper
public interface ChildMapper {
@Named("MinimalChildMapper")
@Mapping(target = "someAttribute", ignore = true)
ChildDTO toMinimalChildDTO(Child child);
@Named("ChildMapper")
ChildDTO toChildDTO(Child child);
}
我知道我可以指定为每个孩子使用 的子映射器,如下所示:
@Mapper(uses = ChildMapper.class)
public interface ParentMapper {
@Mapping(target = "childA", qualifiedByName = "MinimalChildMapping")
@Mapping(target = "childB", qualifiedByName = "MinimalChildMapping")
@Mapping(target = "childC", qualifiedByName = "MinimalChildMapping")
ParentDTO toParentDTO(Parent parent);
}
我要弄清楚的是,是否有某种方法可以将每个qualifiedByName中表示的映射用于类型(ChildDTO),而不必为每个实例指定它类型(childA,childB,childC)。这可能吗?
答案 0 :(得分:1)
当前这是不可能的。
但是,您可以做的是拥有2个ChildMapper
。这样一来,您就可以在ParentMapper
中使用最少的一个。另一种选择是在ParentMapper
中定义最小映射,而不是重新使用ChildMapper
。