使用Dozer进行对象copy,某些字段没有被copy的排查
使用Dozer进行对象copy,某些字段没有被copy的排查
先说我这边的原因:目标实体中字段
与相应的get方法的返回类型不一致
,会导致获取字段时剔除该字段,见方org.dozer.classmap.generator.BeanMappingGenerator#apply
,见destFieldNames
,当然,srcFieldNames
中可能也存在相同问题。实际是个很简单的问题,但没有往这方面考虑。
一些dozer中常见的方法调用轨迹。
在 mapGeneral
中会先将原对象的字段都收集到classMap中的fieldMaps
中,这个作为copy对象的模板。
在org.dozer.MappingProcessor#getClassMap
中会对初次加载的映射对象进行解析,在本地内存进行缓存,后续相同源对象不再进行字段解析。
字段解析方法:ClassMapBuilder#createDefaultClassMap
——>ClassMapBuilder#generateMapping
加载自定义映射:org.dozer.DozerBeanMapper#loadCustomMappings
,该map是有本地缓存。
字段解析入口方法:org.dozer.classmap.ClassMappings#find
使用Dozer进行对象copy,某些字段没有被copy的排查相关推荐
- 使用 Dozer 进行对象的映射
Dozer简介 Dozer 是 Java Bean 到 Java Bean 的映射器,他以递归的方式将数据从一个对象复制到另一个对象.Dozer 支持简单属性映射.双向映射.隐式映射以及递归映射.使用 ...
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合 比如,我有一张表: entity Category.java service CategoryServic ...
- Python天天美味(22) - 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deep ...
- java对象序列化去掉字段_使用序列化查找对象中的脏字段
java对象序列化去掉字段 假设您正在开发一个将对象自动保存到数据库中的框架. 您需要检测两次保存之间所做的更改,以便仅保存已修改的字段. 如何检测脏场. 最简单的方法是遍历原始数据和当前数据,并分别 ...
- Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
http://www.jb51.net/article/15714.htm 1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2. copy.deepcopy 深拷贝 拷贝 ...
- 简单的循环以及从接口获取数组对象的一个字段集合
1.简单的循环字段循环 if (this.videolist) {console.log(111);for (let j = 0; j < this.videolist.length; j++) ...
- stream根据某个字段去重(对象的某个字段去重)
stream根据某个字段去重(对象的某个字段去重) 方案一 重写实体equals.hashcode方法 [重要] 使用infoList.stream().distinct().collect(Coll ...
- js给对象添加变量属性 js 更改对象中的属性名 数组对象中每个对象添加一个字段-map用法和forEarch用法
js给对象添加变量属性 & js 更改对象中的属性名 & 数组对象中每个对象添加一个字段-map用法和forEarch用法 1.js给对象添加变量属性 1.js创建一个对象或者在原有对 ...
- java反射实现自定义json转对象方法-忽略字段大小写、字段个数
java反射实现自定义json转对象方法-忽略字段大小写.字段个数 开发过程中经常会遇到json转对象,可以使用FastJson或者Gson自带的工具类进行转换,但当遇到json与对象属性名称大小写不 ...
最新文章
- Redis6.0新版本开始引入多线程,到底改善了什么
- php遍历父元素,PHP遍历函数将单个数组转换为具有子元素的嵌套数组 – 基于父标识...
- 每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架
- 怎样在android平台上使用第三方jar包
- 【参数】REMOTE_LOGIN_PASSWORDFILE参数三种取值及其行为特性分析
- 【python】装饰器
- HTML+CSS+JS实现 ❤️个人相册封面卡片❤️
- python语言的三个主要特点_python干货|新总结的4个python语言的特点,这几个细节值得关注...
- slam和orbslam3环境配置
- Linux 进程之如何查看进程详情?
- ios 扇形 按钮_iOS 画圆弧或扇形
- python库:Pandas学习笔记
- Office Web App
- 价值链价值流分析方法对成本控制的启示(zt)
- 一位4年的JAVA工程师的面试总结:面试应该先从注意整体的节奏,然后从这些地方下手(数据结构、算法、JVM、多线程、数据库)
- 在element ui中如何自定义el-date-picker的宽度 笔记
- 魔兽显血改建工具的制作及源码
- jq 组装数组_Jquery数组操作
- OpenCV实战:检测胶圈是否闭合
- 三星Samsung SF-531P 驱动
热门文章
- 黑马程序员-Linux系统编程-01
- ​力扣解法汇总2315. 统计星号
- (转)如何应用MTCNN和FaceNet模型实现人脸检测及识别
- java的基本数据类型有什么特点,java八大基本数据类型
- 关于《算法(第四版 谢路云译)》标准库In、Out、StdOut和StdIn的正确配置和调用经验分享(以BinarySearch二分查找算法为例)
- 大数据报告|70%的中国人过劳死危险,其中有你吗?
- iOS15.6和iOS15.5哪个更省电 iOS15.6建不建议升级
- ​UG塑胶模具设计结构分析是如何挤压成型的
- ~ 如何用C++自制一个日麻游戏 ~(一)大体框架构建 § 2 数据结构
- docker build 18.04 镜像出现 Configuring tzdata - Please select the geographic area in which you live