javabean 实体类的转换

Posted 蔡苗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javabean 实体类的转换相关的知识,希望对你有一定的参考价值。

   1. spring 工具类

BeanUtils.copyProperties  简单的实体类之间的转换,不能copy Date类型,利用java反射的原理来进行属性的复制。如果两个实体的类的里面嵌套实体类的类型不一样,copy后实体类的变为原实体类的类型,当在此使用
目标实体类的时候会发生类型的转化异常。
2.

MapStruct是一个代码生成器的工具类,简化了不同的Java Bean之间映射的处理,所以映射指的就是从一个实体变化成一个实体。在实际项目中,我们经常会将PO转DTO、DTO转PO等一些实体间的转换。在转换时大部分属性都是相同的,只有少部分的不同,这时我们可以通过mapStruct的一些注解来匹配不同属性,可以让不同实体之间的转换变的简单。

<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>

 

要生成一个PeopleDTO与PeopleEntity对象相互转换的映射器,我们需要定义一个mapper接口。像这两个实体类有些属性不一样时,我们可以通过@Mapping注解来进行转换.
@Mapper注解标记这个接口作为一个映射接口,并且是编译时MapStruct处理器的入口。
@Mapping解决源对象和目标对象中,属性名字不同的情况。
Mappers.getMapper自动生成的接口的实现可以通过Mapper的class对象获取,从而让客户端可以访问Mapper接口的实现。

 

MapStruct是以Java编译器插件的形式来处理注解,生成mapper接口的实现。因此在使用之前我们要手工编译或启动程序时IDEA也会帮我们编译了,这里最好还是手动编译。

 

 

     








以上是关于javabean 实体类的转换的主要内容,如果未能解决你的问题,请参考以下文章

015_数据建模时,JavaBean的实体类中怎样处理外键

通过Velocity模板引擎对Mysql表自动生成JavaBean实体类的Gradle插件

java net.sf.json 如何将javabean的首字母转换为大写

poi excel自己主动转换成javabean 支持引用类型属性二级转换

MONGODB——DBObject与JavaBean转换

IDEA使用GsonFormat完成JSON和JavaBean之间的转换