实体类的属性映射怎么可以少了它?(四)

简介: 我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自定义 model 可以根据自身业务需要映射相应的实体属性。这样一来,这个映射工程貌似并不简单了。阿粉差点就犯难了……

3.3、属性是枚举类型

实体类我们还是改用 UserEnum:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserEnum {
    private Integer id;
    private String name;
    private UserTypeEnum userTypeEnum;
}

被映射对象 UserVO5 改为:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserVO5 {
    private Integer id;
    private String name;
    private String type;
}

枚举对象是:

@Getter
@AllArgsConstructor
public enum UserTypeEnum {
    Java("000", "Java开发工程师"),
    DB("001", "数据库管理员"),
    LINUX("002", "Linux运维员");
    private String value;
    private String title;
}

那么我们定义的接口还是照常定义,不会受到它是枚举就有所变化:

    @Mapping(source = "userTypeEnum", target = "type")
    UserVO5 toConvertVO5(UserEnum source);
    UserEnum fromConvertEntity5(UserVO5 userVO5);

通过IDE的反编译功能查看编译后的实现类,编译后的结果是这样子的:

12.jpg

很明显, mapstruct 通过枚举类型的内容,帮我们把枚举类型转换成字符串,并给type赋值,可谓是小心使得万年船啊。

看来这巧媳妇儿不仅仅优秀还心细啊……


文章中的所有例子已上传github:https://github.com/mmzsblog/mapstructDemo

相关文章
|
SQL Java 数据库连接
2021-08-05mapper代理,几种pojo输入输出,pojo扩展通过扩展继承,映射主键普通属性映射,动态SQL,逆向工程
2021-08-05mapper代理,几种pojo输入输出,pojo扩展通过扩展继承,映射主键普通属性映射,动态SQL,逆向工程
68 0
|
8月前
|
Java 关系型数据库 MySQL
JPA中实体类属性相关注解与数据表列映射详解
JPA中实体类属性相关注解与数据表列映射详解
398 0
|
XML 存储 Java
Hibernate框架【三】——基本映射——一对一映射
Hibernate框架【三】——基本映射——一对一映射
87 0
|
SQL Java 关系型数据库
MyBatis处理表字段和实体类属性名不一致的情况及多对一映射关系的处理
MyBatis处理表字段和实体类属性名不一致的情况及多对一映射关系的处理
220 0
实现两个不同实体类的list相同属性字段互拷
实现两个不同实体类的list相同属性字段互拷
直接取配置文件对应数据映射到对象中,可在代码中直接使用
直接取配置文件对应数据映射到对象中,可在代码中直接使用
|
IDE 开发工具
实体类的属性映射怎么可以少了它?(三)
我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自定义 model 可以根据自身业务需要映射相应的实体属性。这样一来,这个映射工程貌似并不简单了。阿粉差点就犯难了……
实体类的属性映射怎么可以少了它?(三)
|
IDE 开发工具
实体类的属性映射怎么可以少了它?(二)
我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自定义 model 可以根据自身业务需要映射相应的实体属性。这样一来,这个映射工程貌似并不简单了。阿粉差点就犯难了……
实体类的属性映射怎么可以少了它?(二)
|
XML SQL Java
实体类的属性映射怎么可以少了它?(一)
我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自定义 model 可以根据自身业务需要映射相应的实体属性。这样一来,这个映射工程貌似并不简单了。阿粉差点就犯难了……
|
存储 Java 编译器
JVM14_Class文件结构细节、魔数、Class文件版本、常量池、访问标识(或标志)、类索引|父类索引|接口索引集合、字段|方法|属性表集合(二)
③. 如何确保高版本的JVM可执行低版本的class文件? ④. 常量池(class文件的基石) ①. 什么是常量池? ②. 常量池计数器 ③. 常量池表
135 0
JVM14_Class文件结构细节、魔数、Class文件版本、常量池、访问标识(或标志)、类索引|父类索引|接口索引集合、字段|方法|属性表集合(二)

热门文章

最新文章