Component {
UUID id;
String name;
}
MotherboardComponent extends Component {
String type;
List<Component> components;
}
谢谢
MapStruct在运行时不执行任何操作。它在编译时就会知道类型。
为了解决这个问题,您必须帮助它一点:
例如。
@Mapper
public abstract class MotherboardComponentMapper {
public abstract MotherboardComponentDO map(MotherboardComponent component);
public ComponentDO map(Component component) {
if (component instanceof MotherboardComponent) {
return map((MotherboardComponent) component);
}
return mapAsComponentDO(component);
}
@Named("asComponentDO")
protected abstract ComponentDO mapAsComponentDO(Component component);
}
我想将泛型类型<code>Y</code>的对象映射到另一个泛型类型为<code>X</code>的对象。在mapstruct中有这样的功能吗?或者我必须为通用映射编写自定义映射器吗?当我编译上面的代码时,会出现编译错误。
我正在使用Spring,并且在我的项目中从mapstruct库开始,所以我有了一个想法,为@mapper(componentModel=“Spring”)创建原型注释,比如@springmapper。但它不会生成任何映射器。 是不可能还是我做错了什么?
我有一个场景,我必须使用Mapstrt将对象(来自网络请求)转换为对象(数据层)来处理对象映射。我正在尝试创建一个通用的接口,以防止必须为每个资源定义自定义映射器,如下所示: 但这会导致构建错误(但是编译成功): 错误:(13,4)错误:无法为泛型类型变量源生成映射方法。 这不可能吗?如果没有,我将不得不为每个创建一个自定义映射器,并使用根据类类型等告诉反序列化器要使用哪个映射器。。。它可能会变得
我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好
TL; DR 我想以一种从AbstractP的映射方式来使用ModelMapper,然后在ModelMapper-Config中为每个子类调用特定的映射器,然后跳过其余的(abstrac类)映射。 这怎么可能?这是正确的做法吗?是否存在设计缺陷? 我所拥有的: 母公司: 一个子实体: 另一个子实体: 然后我有父DTO类: 一个孩子DTO: 另一个DTO: 在我的例子中,我将从控制器获取DTO,并在