广告
返回顶部
首页 > 资讯 > 后端开发 > Python >BeanUtils.copyProperties()拷贝id属性失败的原因及解决
  • 464
分享到

BeanUtils.copyProperties()拷贝id属性失败的原因及解决

2024-04-02 19:04:59 464人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录BeanUtils.copyProperties()拷贝id属性失败部分代码如下解决方法BeanUtils.copyProperties 出错BeanUtils.copyProp

BeanUtils.copyProperties()拷贝id属性失败

po类中id有值,但是使用BeanUtils.copyProperties()拷贝出的vo类id属性为null,检查后发现是因为po继承的父类声明了一个泛型。

部分代码如下


public abstract class AbstractEntity<ID extends Serializable> implements Serializable { 
    protected ID id;
    
    protected ID createdBy;
    
    protected Date createdTime;
 
    
    protected ID lastModifiedBy;
    
    protected Date lastModifiedTime; 
    public void setId(ID id) {
        this.id = id;
    }
 
    public ID getId() {
        return this.id;
    }

查看BeanUtils.copyProperties()源码中有一段判断如下:


if (readMethod != null && ClassUtils.isAssignable(writeMethod.getParameterTypes()[0], readMethod.getReturnType())) 

当执行到获取vo类的writeMethod即setId()参数类型,结果是Long类型,而po类的readMethod即getId()返回值类型获取到的结果却是Serializable所以BeanUtils认为属性类型不同,所以不会拷贝id属性。

解决方法

暂不清楚po类extends AbstractEntity<Long>后为什么读取到的类型不是Long而是父类型Serializable,暂时先不用泛型,把id类型直接定义为Long,问题解决~

BeanUtils.copyProperties 出错

注意:属性复制,不同jar中的方法,用法不一样!

spring 包(org.springframework.beans)中


BeanUtils.copyProperties(A,B);

是A中的值赋值给B

Apache 包(org.apache.commons.beanutils)中(常用)


BeanUtils.copyProperties(A,B);

是B中的值赋值给A

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: BeanUtils.copyProperties()拷贝id属性失败的原因及解决

本文链接: https://www.lsjlt.com/news/134201.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • BeanUtils.copyProperties()拷贝id属性失败的原因及解决
    目录BeanUtils.copyProperties()拷贝id属性失败部分代码如下解决方法BeanUtils.copyProperties 出错BeanUtils.copyProp...
    99+
    2022-11-12
  • BeanUtils.copyProperties复制属性失败的原因及解决方案
    目录BeanUtils.copyProperties复制属性失败描述解决办法BeanUtils.copyProperties应用的改进为解决这个问题我重写了部分spring Bean...
    99+
    2022-11-12
  • docker启动失败的原因及怎么解决
    Docker启动失败可能有多种原因,以下是一些常见的原因和解决方法:1. 镜像下载失败:Docker启动时需要下载镜像,如果下载失败,则会导致启动失败。可以尝试重新启动Docker或者检查网络连接,确保能够正常下载镜像。2. 端口冲突:...
    99+
    2023-08-11
    docker
  • MySQL安装失败的原因及解决步骤
    目录失败的原因步骤如下:步骤一步骤二步骤三步骤四步骤五步骤六总结失败的原因 1.如果你原先安装过mysql,后来卸载了再安装失败了,有可能是卸载不干净。 需要手动目录删光所有MySQL相关的文件。这一点MySQL特别坑,...
    99+
    2022-06-13
    mysql安装失败怎么删除干净 mysql安装失败start service mysql没有安装成功怎么办
  • java安装失败的原因及解决方法
    解决方法:下载的JDK环境,必须与自己的操作系统相对应。32位操作系统下载32位的Windows JDK环境,64位操作系统下载64位的Windows JDK环境。安装JDK环境时,会有两次路径选择,可以默认不改,如果自定义路径的话,前一个...
    99+
    2018-07-02
    java入门 java 安装 失败 原因 解决方法
  • 分析Git认证失败的原因及解决办法
    前言Git是目前最主流的代码管理和版本控制工具之一,在企业和开源社区广泛使用。在使用 Git 进行代码管理时,可能会遇到 Git 认证失败的问题。本文将分析Git认证失败的原因及可能的解决方法。一、Git认证失败的原因1.凭证缓存失效在使用...
    99+
    2023-10-22
  • @Autowired自动注入接口失败的原因及解决
    目录@Autowired 自动注入接口失败可以这样做@Autowired 自动注入失败报空指针异常今天就遇到了这个问题 @Autowired 自动注入接口失败 有个自动注入...
    99+
    2022-11-13
  • Vue渲染失败的几种原因及解决方案
    目录Vue渲染失败原因及解决一.假设template中二.因为Vue无法检测到属性的添加和移除三. 对于数组Vue渲染错误问题Vue 报错原因解决Vue渲染失败原因及解决 在进行数据...
    99+
    2022-11-13
  • MongoDB连接本地失败的原因及解决办法
    目录MongoDB连接本地失败解决办法错误原因解决办法在mongodb目录中新建一个data文件夹(如果有就不用建)进入data文件夹,建立db和log两个文件夹(如果有就不用新建)打开CMD,进入到mongodb 的 ...
    99+
    2023-05-15
    MongoDB连接本地失败 MongoDB连接失败
  • win7系统安装失败的原因及解决方法
    很多用户在安装Win7时都遇到了安装失败,到底是什么原因导致win7安装失败,用户该如何去排除win7安装失败的故障,让Win7顺利安装,下面是笔者对Win7安装失败进行一次全面解析,希望能够找到您Win 7安装失败的原...
    99+
    2023-05-31
    win7 安装失败 解决 原因 系统 方法
  • MySql执行失败的原因及解决方法是什么
    MySql执行失败的原因有很多种,以下是常见的一些原因及解决方法:1. 语法错误:在编写SQL语句时,可能会出现语法错误,比如拼写错...
    99+
    2023-09-14
    MySql
  • Windows缓存写入失败的原因以及解决办法
    无法为该文件保存数据,这可能是因为你的网络连接错误或计算机硬件造成,请另保存数据。 关闭以后还会弹出类似对话框,都是system32下的文件,好象很多是*.log文件,系统无法启动,但重新插拔内存后故障消失。 故障分析W...
    99+
    2023-05-25
    缓存写入失败 原因 解决办法 Windows
  • gitlab合并失败的原因是什么及怎么解决
    这篇文章主要介绍了gitlab合并失败的原因是什么及怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇gitlab合并失败的原因是什么及怎么解决文章都会有所收获,下面我们一起来看看吧。一、合并冲突在合并两个...
    99+
    2023-07-05
  • Git认证失败的原因是什么及怎么解决
    这篇文章主要介绍“Git认证失败的原因是什么及怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Git认证失败的原因是什么及怎么解决”文章能帮助大家解决问题。一、Git认证失败的原因凭证缓存失效...
    99+
    2023-07-05
  • windows更新失败的原因及解决方法是什么
    Windows更新失败的原因有很多,其中一些常见的原因包括:1. 网络问题:如果网络连接不稳定或中断,则Windows更新可能失败。...
    99+
    2023-09-08
    windows
  • MySQL启动失败的原因是什么及如何解决
    本篇内容主要讲解“MySQL启动失败的原因是什么及如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL启动失败的原因是什么及如何解决”吧!此处我的电...
    99+
    2022-10-19
  • win10重置失败的原因及解决方法是什么
    Win10重置失败的原因及解决方法可能有多种。以下是一些常见的原因和解决方法:1. 系统文件损坏:重置过程中可能会遇到文件损坏或缺失...
    99+
    2023-10-10
    win10
  • gradle构建失败的原因及解决方法是什么
    Gradle 构建失败的原因有很多,常见的包括:1. 依赖冲突:如果项目中存在多个库或模块的版本冲突,可能会导致构建失败。解决方法是...
    99+
    2023-10-12
    gradle
  • gitee拉取项目失败的原因以及解决方法
    在程序员的日常工作中,使用Git进行代码版本控制已经是司空见惯的事情了。而Gitee作为国内知名的Git代码托管平台,也是许多程序员的首选之一。然而,有时候当我们尝试从远程仓库中拉取项目时,可能会遇到“Gitee拉取项目失败”的问题。本文将...
    99+
    2023-10-22
  • Vue渲染失败的原因是什么及如何解决
    本篇内容介绍了“Vue渲染失败的原因是什么及如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vue渲染失败原因及解决在进行数据双向绑定...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作