我找不到答案,我相信MapStruc不可能这样做。无论如何我想问一下,也许我错过了什么。
我有一个映射方法,它采用两个源并映射到一个目标,比方说
@Mapping(...)
@Mapping(...)
...
Target mapToTarget(SourceA a, SourceB b);
生成的代码执行以下null
检查以返回null
:
if (a == null && b == null) return null;
我希望
if (a == null || b == null) return null;
附注:我们使用MapStruct 1.3.1
这在MapStruct中是不可能的。但是,您可以通过提供默认方法来实现这一点。
例如。
@Mapper
public abstract class CustomerMapper {
public Target mapToTarget(SourceA a, SourceB b) {
if (a == null || b == null) {
return null;
}
return mapToTargetWithMapStruct(a, b);
}
@Named("ignore") // @Named in order for MapStruct not to consider this as a candidate
protected abstract mapToTargetWithMapStruct(SourceA a, SourceB b);
}
如果(tagrecord.gettagid()==null&&tagrecord.gettaglabel()==null),我实际上希望生成的方法返回一个null标记对象。有没有可能,我该如何实现这一点?
我试图使用MapStruct在dto和实体对象之间映射convert,但是生成的映射器实现只返回空的映射对象。 BeermapperImpl 任何人都可以提供我的代码可能出错的地方?谢谢!
假设我需要将两个对象映射成一个或一个对象映射成一个(重载)。我可以通过以下映射来实现: 是否有一种方法可以更改第二个映射器“先做第一个映射器”,然后应用的附加映射?
“想要解决方案B” 有什么办法可以做到这一点吗?
Mapstruct在Spring-Boot rest api中使用一对多和多对一关系映射我的实体时遇到了一个问题。 我有下面的课 因此,当我在评论中添加私有UserDTO用户时;进入PolicyDTO和公共列表PolicyList;进入UserDTO 结果策略列出了所有字段中的值都可以,当然,除了两个注释字段。如果我用双向关系将这两个字段取消注释到DTO中,结果不仅在关系字段中是null,而且在所
默认情况下,MapStruct将NullValueMappingStrategy作为RETURN_NULL。我的要求是,当source为null时,我需要抛出一个NPE,类似于lombok的@nonnull的工作方式。