我有mapstruct映射器的实现如下
@Mapper
public interface MyMapper extends Serializable {
MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);
//@Mapping(target = "status", source = "p1.status")
MergedPojosClass from(Pojo1 p1, Pojo2 p2);
}
没有注释的行,我收到以下错误:
错误:(20,14)Java:目标属性“status”的几个可能的源属性。
我是否可以通过添加一些注释来避免上面的样板(显式映射),说明Pojo1具有更高的优先级?我研究了Java文档和mapstruct的源代码,但没有任何示例或线索对我的情况有帮助。我试图用InheritanceStrategy找到一些东西,但它看起来很像MapStruct的内部概念。
您可以尝试定义@mapperconfig
。但不确定它是否有效
就像这样:
@MapperConfig
public interface MyConfig {
@Mapping(target = "status", source = "p1.status")
MergedPojosClass from(Pojo1 p1);
}
@Mapper(config = MyConfig.class, mappingInheritanceStrategy=MappingInheritanceStrategy.AUTO_INHERIT_ALL_FROM_CONFIG)
public interface MyMapper extends Serializable {
MyMapper INSTANCE = Mappers.getMapper(MyMapper.class);
// here's the doubt.. I'm not sure that in 2 arg mapping the config is used
MergedPojosClass from(Pojo1 p1, Pojo2 p2);
}
我正在从ModelMapper到MapStruct的转换过程中,到目前为止一切都很顺利,除了在列表上排序和筛选的情况,如果我有一个从域对象到实体的映射,例如: 从一个api中,我想在contactAddressLine1上进行过滤或排序,然后我想查找源代码(或反向映射时的目标代码),以便将其添加到动态jpq或sql查询中。 有没有办法用MapSTRt做到这一点? 使用ModelMapper,我可以
我们希望能够将未映射的SourcePolicy设置为ReportingPolicy. ERROR,以便默认情况下丢失的源会大声失败。但是,有时源对象模型包含与目标无关的内容。因此,我们希望能够执行以下操作: 可以对目标执行类似操作。如果我尝试上述操作,我会得到错误,因为映射中需要目标。
我有以下DTO和域对象。我正在使用Mapstruct将域对象复制到DTO对象。 使用下面的映射器将域映射到DTO。我不想将电话属性从域映射到DTO。怎么做?我尝试在mapping ignore中提供嵌套目标属性,但它给出了错误:
我想从属性文件中加载源的名称和目标的tgName。 像这样的东西
在我的代码中,我处理一个数组,该数组中有一些条目,其中许多对象嵌套在另一个条目中,而有些条目则没有。它看起来如下所示: 这给我带来了问题,因为我有时需要遍历数组,而不一致性给我带来了如下错误: 我知道我可以说,但是当有多达5或6个对象相互嵌套时,这是非常乏味的。有没有其他(更简单)的方法,我可以让它只做console.log,如果它存在,但不抛出一个错误?
我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?