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的反编译功能查看编译后的实现类,编译后的结果是这样子的:
很明显, mapstruct
通过枚举类型的内容,帮我们把枚举类型转换成字符串,并给type赋值,可谓是小心使得万年船啊。
看来这巧媳妇儿不仅仅优秀还心细啊……
文章中的所有例子已上传github:https://github.com/mmzsblog/mapstructDemo