1

我有一个非常特殊的用例,我手中有一个a类对象A和一个类对象bB这样a.b.equals(b)我打算使用 Orika映射a到类。C棘手的一点是,我想防止a.b被传递,而是自己插入它(a.b实际上是在我不想发生的映射期间由 JPA 获取的)。另一方面,我想a.b在所有其他用例中进行映射。

有没有一种体面的方法可以在不指定两个自定义的情况下在 Orika 中实现这种行为ClassMap

4

2 回答 2

2

一种可能的解决方案是使用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();

请参阅用户指南的“自定义单个 ClassMap”部分。

于 2015-10-23T08:27:07.690 回答
-1

您可以使用 ClassMapBuilder.exclude(String propertyName)。

于 2015-10-21T15:22:15.110 回答