我有一个非常特殊的用例,我手中有一个类a
的对象A
和一个类b
的对象B
,这样{{1} 1}}我打算使用Orika将a.b.equals(b)
映射到类a
。
棘手的是,我想阻止C
被传递,而是自己插入(a.b
实际上是由JPA在映射期间提取的,我不想发生这种情况。另一方面,我希望在所有其他用例中映射a.b
。
有没有一种不错的方法在Orika中实现这种行为而不指定两个自定义a.b
?
答案 0 :(得分:1)
其中一种可能的解决方案是使用CustomMapper
:
mapperFactory.classMap(A.class, C.class)
.byDefault() // or your explicit mappings
.exclude("b") // exclude the property from default mapping
.customize(
new CustomMapper<A, C> {
public void mapAtoB(A a, C c, MappingContext context) {
// implement your own logic for mapping the b property
}
}
.register();
请参阅User Guide的“自定义单个类别广告”部分。
答案 1 :(得分:-1)
您可以使用ClassMapBuilder.exclude(String propertyName)。