有没有办法专门告诉 Orika 何时映射给定项目?例如,我希望 Orika 仅在A.getLastModifiedTime() > B.getLastModifiedTime
. 有没有办法以某种方式配置它?
问问题
627 次
2 回答
1
这应该可以解决问题:
mapperFactory.classMap(A.class, B.class)
.customize(new CustomMapper<A,B>() {
if(A.getLastModifiedTime() > B.getLastModifiedTime()){
A.getLastModifiedTime() == B.getLastModifiedTime();
}
}).register();
于 2016-01-16T16:43:46.313 回答
0
您可以使用 Orika 过滤器来根据运行时条件映射或不映射字段。最简单的方法是通过扩展 Orika 的 NullFilter。
class MyFilter<A,B> extends NullFilter<A,B> {
private myCondition(S source, D dest) {
...
}
public <S extends A, D extends B> boolean shouldMap(final Type<S> sourceType, final String sourceName, final S source, final Type<D> destType, final String destName,
final MappingContext mappingContext) {
if (destName.equals("lastModifiedTime") && myCondition(source, dest)) {
return false;
}
return true;
}
}
于 2016-02-10T15:09:54.563 回答