【问题标题】:Instruct orika when should map指示 orika 何时应该映射
【发布时间】:2015-08-28 20:33:27
【问题描述】:

有没有办法专门告诉 Orika 何时映射给定项目?例如,我希望 Orika 仅在 A.getLastModifiedTime() > B.getLastModifiedTime 时映射我的项目。有没有办法以某种方式配置它?

【问题讨论】:

    标签: orika


    【解决方案1】:

    这应该可以解决问题:

    mapperFactory.classMap(A.class, B.class)
            .customize(new CustomMapper<A,B>() { 
                    if(A.getLastModifiedTime() > B.getLastModifiedTime()){
                            A.getLastModifiedTime() == B.getLastModifiedTime();
                    }
             }).register();
    

    【讨论】:

      【解决方案2】:

      您可以使用 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;    
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-22
        • 2013-12-20
        • 2018-02-19
        • 2016-08-21
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        相关资源
        最近更新 更多