Orika映射工具MapperFactory使用方法,及LocalDateTime转换异常
来源:互联网 发布:中森茗苑网易房产数据 编辑:程序博客网 时间:2024/06/07 00:55
一、创建MapperFactory
手动创建
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
spring创建
@Bean public MapperFactory getFactory(){ return new DefaultMapperFactory.Builder().build(); }
二、使用方法
如果两个类中的属性名一样,类型不一样,会自动转换。如果无法转换会报错。
1. 单个类映射单个类(字段名不完全一样)
//注意User中的name和UserVO中的username属性名不同,age的类型也不同class User { private String name; private String age; private String sex; //Setter,Getter}class UserVO { private String username; private Integer age; private String sex; //Setter,Getter}
public void UserToUserVO(User user) { //先注册以下映射方式 mapperFactory.classMap(User.class, UserVO.class) .field("name","username")//不一样的字段映射 .byDefault()//剩余的字段映射 .register(); UserVO uservo = mapperFactory.getMapperFacade().map(user, UserVO.class);}
2. 单个类映射单个类(字段名完全一样)
//注意age的类型不同class User { private String username; private String age; private String sex; //Setter,Getter}class UserVO { private String username; private Integer age; private String sex; //Setter,Getter}
public void UserToUserVO(User user) { UserVO uservo = mapperFactory.getMapperFacade().map(user, UserVO.class);}
3. 集合映射呈另一个泛型的集合
//注意User中的name和UserVO中的username属性名不同,age的类型也不同class User { private String name; private String age; private String sex; //Setter,Getter}class UserVO { private String username; private Integer age; private String sex; //Setter,Getter}
public void copyUserListToUserVOList(List<User> userList){ //手动配置不一样的属性转换 mapperFactory.classMap(User.class, UserVO.class) .field("name","username")//不一样的字段映射 .byDefault()//剩余的字段映射 .register(); //转换List List<UserVO> userVOList = mapperFactory.getMapperFacade().mapAsList(userList, UserVO.class); //打印验证一下(重写UserVO的tostring) userVOList.forEach(user -> { System.out.println(user); });
三、用了java8中的LocalDateTime结果发现转换异常,解决方法为:在容器中增加一个bean,如下:
@Componentpublic class OrikaMapperFactoryExtend { @Autowired private MapperFactory mapperFactory; @PostConstruct public void init() { mapperFactory.getConverterFactory().registerConverter(new LocalDateTimeConverter()); mapperFactory.getConverterFactory().registerConverter(new LocalDateConverter()); mapperFactory.getConverterFactory().registerConverter(new LocalTimeConverter()); } private class LocalDateTimeConverter extends BidirectionalConverter<LocalDateTime, LocalDateTime> { @Override public LocalDateTime convertTo(LocalDateTime source, Type<LocalDateTime> destinationType) { return LocalDateTime.from(source); } @Override public LocalDateTime convertFrom(LocalDateTime source, Type<LocalDateTime> destinationType) { return LocalDateTime.from(source); } } private class LocalDateConverter extends BidirectionalConverter<LocalDate, LocalDate> { @Override public LocalDate convertTo(LocalDate source, Type<LocalDate> destinationType) { return LocalDate.from(source); } @Override public LocalDate convertFrom(LocalDate source, Type<LocalDate> destinationType) { return LocalDate.from(source); } } private class LocalTimeConverter extends BidirectionalConverter<LocalTime, LocalTime> { @Override public LocalTime convertTo(LocalTime source, Type<LocalTime> destinationType) { return LocalTime.from(source); } @Override public LocalTime convertFrom(LocalTime source, Type<LocalTime> destinationType) { return LocalTime.from(source); } }}
阅读全文
0 0
- Orika映射工具MapperFactory使用方法,及LocalDateTime转换异常
- Springboot集成MapperFactory(ma.glasnost.orika.MapperFactory)类属性复制
- java关于使用Orika的mapperFactory进行对象拷贝以及集合拷贝
- 对象映射工具EmitMapper使用方法
- Java8中的LocalDateTime工具类
- LocalDateTime
- 工具集合及使用方法
- LocalDateTime与String日期互相转换
- Date与LocalDate,LocalDateTime,LocalTime的转换
- js调试工具及使用方法
- webService测试工具及使用方法
- openssh生成密钥及使用方法,以及puttygen工具自由转换私钥
- springboot jdk8 LocalDate LocalDateTime jpa 映射字段是tinyblob 解决办法
- 异常抛出增强使用方法及案例
- 任务映射及优化工具使用
- Java8中 Date和LocalDateTime的相互转换
- pdf转换成html转换工具的使用方法
- Java keytool工具的作用及使用方法
- 最大连续子序列
- Sevlet的生命周期
- Spring boot快速搭建
- objc[20556]:Class JavaLaunchHelper is implemented in both xxx 警告处理
- c++ new delete知识总结
- Orika映射工具MapperFactory使用方法,及LocalDateTime转换异常
- zookeeper的watch事件反复监听实现细节
- Hadoop的初步认识
- Http 资源服务器 搭建 HFS
- Java main函数的命令行参数
- JVM内存管理机制
- 重载运算符时的参数和返回类型要用引用的说明
- java.io.IOException: Connection reset by peer
- 设计模式-策略模式