美文网首页
orika实现自定义转换

orika实现自定义转换

作者: 爱余星痕 | 来源:发表于2020-05-20 17:50 被阅读0次

orika是我比较喜欢的一个属性复制框架,性能高,也用得比较爽。
但在实际项目中,复制时,不一定成功。
如现在我有一个项目,属性名称一样,类型不一样,就需要自定义复制。

  1. PO,DTO如下:
@Data
public class GatewayAuthProject implements Serializable {

 
    /**
     * 匿名地址 多个用逗号分隔
     */
    private String annoUrl;

}
@Data
public class GatewayAuthProjectDto implements Serializable {

 
    /**
     * 匿名地址  
     */
    private List<String>annoUrl;

}

这两个属性一样,但类型不一样,用orika原生的,会报错的。

  1. 自定义orika转换器
  class ProjectConverter extends BidirectionalConverter<List<String>, String> {


        @Override
        public String convertTo(List<String> source, Type<String> destinationType, MappingContext mappingContext) {
            return String.join(";", source);
        }

        @Override
        public List<String> convertFrom(String source, Type<List<String>> destinationType, MappingContext mappingContext) {
            return Arrays.stream(source .split(";")).map(String::trim).collect(Collectors.toList());

        }
    }
  1. 使用转换器
 MapperFactory mapperFactory = new DefaultMapperFactory.Builder().mapNulls(false).build();

     mapperFactory.getConverterFactory().registerConverter("projectConverter", new ProjectConverter());
        mapperFactory.classMap(GatewayAuthProject.class, GatewayAuthProjectDto.class)
                .fieldMap("annoUrl", "annoUrl").converter("projectConverter").add()
                .byDefault().register();

       MapperFacade  mapper= mapperFactory.getMapperFacade();

至此,使用mapper进行平常的复制就好了。

相关文章

  • orika实现自定义转换

    orika是我比较喜欢的一个属性复制框架,性能高,也用得比较爽。但在实际项目中,复制时,不一定成功。如现在我有一个...

  • 使用Orika实现DO与DTO的互转

    使用OrikaUtil实现DO与DTO的互转 本文主要讲些什么呢 orika是什么?orika的优缺点? orik...

  • Orika对象复制教程

    一、Orika背景介绍 Orika[http://orika-mapper.github.io/orika-doc...

  • Orika mapper

    搜索:orika mapper fieldAToB nested field https://orika-map...

  • Orika

    主页 http://orika-mapper.github.io/orika-docs/mappings-via-...

  • 后端异常统一捕捉

    实现 HandlerExceptionResolver ,对自定义异常进行转换,对非自定义异常统一转化为自定义异常...

  • Orika 实现 Map 和 Entity 之间转换(类型不匹配

    一、背景 Map 对象: User 实例: 转换代码: 结果: Error occurred: java.lang...

  • Orika

  • Orika入门

    Orika是什么 Orika是一个简单、快速的JavaBean拷贝框架,它能够递归地将数据从一个JavaBean复...

  • orika-使用

    orika 对象拷贝 依赖 基本使用 双向映射

网友评论

      本文标题:orika实现自定义转换

      本文链接:https://www.haomeiwen.com/subject/lvbnohtx.html