zoukankan      html  css  js  c++  java
  • 【java】mapstruct Spring支持的克隆转化

    mapstruct   Spring支持的克隆转化

    一.版本引用

    1.pom.xml文件

    <org.mapstruct.version>1.2.0.CR1</org.mapstruct.version>
    
    
        <!--mapStruct依赖  start-->
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-jdk8</artifactId>
                <version>${org.mapstruct.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${org.mapstruct.version}</version>
            </dependency>
            <!--mapStruct依赖  end-->
    View Code

    二.使用

    1.pojo对象

    package com.sxd.swapping.mybatis.pojo;
    
    import lombok.Data;
    
    import java.time.LocalDateTime;
    
    /**
     * 数据库表的POJO
     */
    @Data
    public class DownloadUpload {
    
        /**
         * DB 自增ID
         */
        private Long id;
    
        /**
         * 业务ID
         */
        private Long duId;
    
        /**
         * 业务名称
         */
        private String duName;
    
        /**
         * 业务状态 枚举值
         */
    
        private Integer duStatus;
    
    
        /**
         * 业务时间
         */
        private LocalDateTime createTime;
    
    }
    View Code

    2.转化对象

    package com.sxd.swapping.downloadAndUpload.xlsxDownloadAndUpload.vo;
    
    
    import com.alibaba.excel.annotation.ExcelIgnore;
    import com.alibaba.excel.annotation.ExcelProperty;
    import com.alibaba.excel.annotation.write.style.ColumnWidth;
    import lombok.Data;
    
    import java.time.LocalDateTime;
    
    @Data
    @ColumnWidth(25)
    public class RTReportVO {
    
        /**
         * 业务ID
         */
        @ExcelIgnore
        private Long duId;
    
        /**
         * 业务ID
         */
        @ExcelProperty(value = "业务ID",index = 0)
        private String duIdDesc;
        /**
         * 业务名称
         */
        @ExcelProperty(value = "业务名称",index = 1)
        private String duName;
    
        /**
         * 业务状态 枚举值
         */
        @ExcelIgnore
        private Integer duStatus;
    
        /**
         * 业务状态 枚举描述
         */
        @ExcelProperty(value = "业务状态",index = 2)
        private String duStatusDesc;
    
        /**
         * 业务时间  DB字段
         */
        @ExcelIgnore
        private LocalDateTime createTime;
    
        /**
         * 业务时间 展示字段
         */
        @ExcelProperty(value = "业务时间",index = 3)
        private String createTimeDesc;
    
    
    }
    View Code

    3.转化工具定义

    package com.sxd.swapping.downloadAndUpload.xlsxDownloadAndUpload.assemble;
    
    import com.sxd.swapping.mybatis.pojo.DownloadUpload;
    import com.sxd.swapping.downloadAndUpload.xlsxDownloadAndUpload.vo.RTReportVO;
    import org.mapstruct.Mapper;
    
    /**
     * mapstruct
     * Spring支持的克隆
     */
    @Mapper(componentModel = "spring")
    public interface DUDB2VOAssemble {
    
        RTReportVO from(DownloadUpload downloadUpload);
    }
    View Code

    4.使用代码

    List<DownloadUpload> dbResult = dudbService.query(duQuery);
                if (CollectionUtils.isNotEmpty(dbResult)) {
                    List<RTReportVO> reportDTOs = dbResult.stream().map(dudb2VOAssemble::from).collect(Collectors.toList());
    
                }
    View Code
  • 相关阅读:
    RF运行之后控制信息日志显示乱码(解决方法)
    robot framework error: [ ERROR ] Suite 'XXX' contains no tests or tasks.(解决方法)
    MySQL下载与安装
    巧妙利用selenium中的JS操作来处理特殊的文本框
    Fiddler请求图标含义
    类对象、实例对象、类属性、实例属性、类方法、实例方法、静态方法
    python模块与包的详解
    python字典总结
    python文件读写详解
    python类和self解析
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/15043343.html
Copyright © 2011-2022 走看看