对象的复制
对象 复制
2023-09-11 14:15:07 时间
通常我们在更新操作的时候,往往对于一些现有的数据比如is_delete 和 create_time 等。这些字段不行该覆盖更新,所以我们通常把需要修改的的对象从数据库查询出来
然后再进行更新操作。
spring给我们提供的有beanUtils工具类。功能很强大。后面跟的是可以忽略的字段
BeanUtils.copyProperties(dataTemplateDto,dataTemplate,"isDelete","createTime","vid");
BeanUtils.copyProperties(dataTemplateDto,dataTemplateField,"isDelete","createTime","vid");
也可以用这个工具类
package com.mairuide._frame.utils; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import java.beans.PropertyDescriptor; import java.util.HashSet; import java.util.Set; /** * Created by 敲代码的卡卡罗特 * on 2018/11/29 19:55. */ public class UpdateTool { /** * 将目标源中不为空的字段过滤,将数据库中查出的数据源复制到提交的目标源中 * 目标源:请求更新的实体数据。 * 数据源:通过目标源传上来的id,去数据库中查出的实体数据 * * @param source 用id从数据库中查出来的数据源 * @param target 提交的实体,目标源 */ public static void copyNullProperties(Object source, Object target) { BeanUtils.copyProperties(source, target, getNoNullProperties(target)); } /** * @param target 目标源数据 * @return 将目标源中不为空的字段取出 */ private static String[] getNoNullProperties(Object target) { BeanWrapper srcBean = new BeanWrapperImpl(target); PropertyDescriptor[] pds = srcBean.getPropertyDescriptors(); Set<String> noEmptyName = new HashSet<>(); for (PropertyDescriptor p : pds) { Object value = srcBean.getPropertyValue(p.getName()); if (value != null) noEmptyName.add(p.getName()); } String[] result = new String[noEmptyName.size()]; return noEmptyName.toArray(result); } }
相关文章
- 问题-提示“不正常地定义参数对象。提供了不一致或不完整的信息。”
- AnonymousType匿名类型和对象之间的转换
- TypeError: 'bases' is null or not an object。IE8 bug 腐朽的对象
- php对象当参数传递 && php深复制和浅复制
- jq通过对象获取其ID值,再简单ajax传到后台改值
- java判定数据(对象)类型
- javascript: 复制对象时的深拷贝及浅拷贝(chrome 105.0.5195.125)
- 代理对象不允许复制,因此写块操作被拒绝
- Java对象转xml报文和xml报文转Java对象帮助类
- atitit.spring hibernate的事务机制 spring不能保存对象的解决
- js 创建类,对象
- Java类和对象(一)
- 【Groovy】MOP 元对象协议与元编程 ( 方法注入 | 分析使用 MetaClass 进行方法注入前后 mateClass 类型变化 )
- 【Groovy】闭包 Closure ( 闭包中调用 Groovy 脚本中的方法 | owner 与 delegate 区别 | 闭包中调用对象中的方法 )
- python mmap对象
- Java中使用Jackson,对JSON和对象进行转换
- python基础===文件对象的访问模式,以及计数循环的使用方法
- Kotlin 类、对象和接口