`
xyh
  • 浏览: 85788 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

Spring的BeanUtils导致的异常

    博客分类:
  • Java
阅读更多
一直以来用Apache的COMMON包的BeanUtils类进行Bean的拷贝,比如
BeanUtils.copyProperties(dest, orgi);

今天尝试用Spring自带的BeanUtils拷贝Bean,就遇到下面的错误:
identifier of an instance of com.test.cmp.entity.XXX was altered from 1 to null

觉得是主键方面的问题,于是检查了主键,没问题。主键类型POJO和数据库也算比较对应。
后来找出问题可能在Spring的BeanUtils那个类上面,于是改成简单的Setter,getter试了下,没出现错误了。最后还是换成了Apache Commons包的BeanUtils

另外用Apache Common的BeanUtils拷贝,不能拷贝类型为
java.util.Date
类型的属性,得转换成
java.sql.Date

所以一般日期类型最好还是用Timestamp好点
分享到:
评论
2 楼 casheen 2014-05-12  
你的实体的setId方法应该是继承自父类的泛型方法,比如
public void setId(T id) {...}
,Spring的BeanUtils解析过程中不能自动匹配这个方法,导致没有给id赋值。
1 楼 sysygp 2012-07-23  
猜测楼主用spring的BeanUtils时参数顺序弄错了,将一个空主键的实体赋给一个有主键的实体,所以报那样的错。  Apache Commons包的BeanUtils 不能拷贝util下的date字段没怎么注意,一会测试一下。  我遇到的问题是不管用那种办法,我想让ori实体的非null值赋值给desc实体,否则不进行该字段的拷贝。    测试了下,两种方法都不行,包括直接 descEntity = oriEntity。  跟楼主求教。。。

相关推荐

    Spring-BeanUtils工具类

    4. **空值处理**:BeanUtils还考虑到了JavaBean属性可能为null的情况,通过`ignoreProperties()`方法,可以在复制属性时忽略指定的null属性,避免因为空值导致的异常。 在实际使用中,我们需要引入Apache Commons ...

    commons-beanutils (1.7.0 -1.9.2)6个

    - **类型安全**:虽然BeanUtils提供了自动类型转换,但并非所有类型转换都是安全的,可能会导致运行时异常。因此,在使用时需确保转换的合理性。 - **空值处理**:在进行Bean属性操作时,需要注意空值的处理,避免...

    Commons-beanutils.rar

    - **框架集成**:许多Java框架,如Spring MVC,Struts等,都利用BeanUtils来进行数据绑定和对象复制。 - **数据迁移**:在对象模型发生变化时,BeanUtils的复制功能可以帮助迁移数据。 - **测试**:在单元测试中...

    为什么不推荐使用BeanUtils属性转换工具示例详解

    如果我们使用Spring的BeanUtils来拷贝属性,可能会出现类型转换异常。例如,在下面的示例代码中,我们使用Spring的BeanUtils来拷贝A对象的属性到B对象中: ```java import org.springframework.beans.BeanUtils; ...

    commons-beanutils-1.8.3-bin

    - BeanUtils默认使用空字符串(" ")来代替`null`值,这可能导致预期之外的结果。可以使用`NullHandler`来自定义空值行为。 - 在使用`getProperty()`和`setProperty()`时,如果属性不存在,会抛出`...

    一段Spring代码引起的调用绑定总结

    Spring提供了一些工具类,如`ClassUtils`、`BeanUtils`、`ReflectionUtils`等,它们包含了许多方便的静态方法,可以帮助开发者简化代码,处理反射、类型转换等相关任务。 8. **异常处理**: Spring提供了`@...

    Spring4新特性(6)更好的Java泛型操作APIJa

    这增强了基于XML的配置的灵活性,同时也降低了因类型不匹配导致的运行时异常。 在实际开发中,这些改进意味着更少的代码,更高的效率,以及更少的运行时错误。通过利用Spring4的这些新特性,开发者可以编写出更加...

    Struts,Spring,Hibernate优缺点.

    4. **异常处理:**Struts 提供了一套异常处理机制,能够有效地处理运行时可能出现的各种异常情况。 5. **事务管理:**Struts 支持事务管理,能够在一定程度上保证数据的一致性和完整性。 6. **国际化支持:**Struts ...

    Java开发手册(嵩山版)灵魂15问.pdf

    相比其他如Spring的BeanUtils、Cglib的BeanCopier等工具,BeanUtils在处理大量对象复制时可能会导致性能瓶颈。这是因为BeanUtils内部实现中涉及了反射和异常处理,这些操作在循环中大量执行时会消耗更多的时间。 ...

    java常见异常汇总

    **异常描述**:在使用 DJNativeSwing 进行浏览器嵌入操作时,在不同操作系统(如 Windows 和 Linux)下使用不一致的 SWT jar 包可能导致此异常。 **原因分析**:Windows 和 Linux 下使用的 SWT jar 包版本不一致,...

    JAVAEE所用架包

    这可能导致运行时异常,因为不同版本的库可能有不兼容的API。 2. **初始化顺序**:Spring和Struts的初始化顺序可能影响到它们之间的协作。如果配置不当,可能导致一个框架不能正确地识别或处理另一个框架的组件。 ...

    阿里巴巴Java开发手册(嵩山版).pdf

    - **性能问题**:相较于其他工具如Spring BeanUtils或Cglib BeanCopier,Apache Beanutils在性能上表现不佳。 - **安全漏洞**:Apache Beanutils存在反射调用的安全隐患,可能导致远程代码执行等问题。 - **类型...

    estableRuntimeException cannot be resolved 解决

    在开发过程中,确保所有依赖的库都已正确添加并且版本匹配是至关重要的,因为不兼容的库版本可能会导致编译错误或运行时问题。如果遇到"cannot be resolved"错误,检查并更新相关库是最常见的解决方案之一。同时,...

    bean_util_test.zip

    常见的Bean Util工具有Apache的Apache Commons BeanUtils库,Spring框架中的BeanUtils工具类,以及Google的Guava库中的Transformers等。这些工具类通常提供以下功能: 1. **属性复制**:可以将一个Bean对象的属性值...

    编程语言Javaweb常见错误.pdf

    文档中提到了一些具体的技术栈和库文件,例如spring-framework、jakarta-commons、commons-beanutils、asm、dom4j、commons-collections,这些是Java Web开发中常用的库。文档还提到了一些技术文件和目录,如web.xml...

    藏经阁-Java开发手册(嵩山版)灵魂15问-123.pdf

    Java开发手册-藏经阁灵魂15问 Java开发手册是Java开发者必备的指南之一,本手册中提到了许多Java开发中的最佳实践和...因此,我们需要选择其他方式来进行属性拷贝,例如使用Spring BeanUtils或Cglib BeanCopier等。

    解决方案-servlet action isnot available

    在进行Spring与Struts框架集成时,如果出现“Servlet action is not available”错误提示,很可能是由于`commons-beanutils`库的问题所导致。错误信息中提到的`java.lang.SecurityException`异常通常是由于类签名...

    JAVA三大框架优缺点

    4. **提供异常处理机制:** Struts内置了一套异常处理机制,可以在不破坏整体架构的情况下优雅地处理各种异常情况,增强了应用的健壮性和用户体验。 5. **数据库连接池管理:** 通过集成Apache Commons DBCP或其他...

    Java常见错误分析文档

    - 对于Spring框架,确保spring-framework-2.0.3\lib\jakarta-commons\commons-beanutils.jar和spring-framework-2.0.3\lib\asm\asm-2.2.2.jar这两个库文件都已正确添加。 #### 三、Struts框架相关错误 ##### 1. ...

    SSH三大框架面试问题

    5. **Exception处理机制**:Struts框架内置了异常处理机制,方便对应用程序可能出现的异常进行统一管理和处理。 6. **数据库连接池管理**:Struts可以通过配置与数据库连接池集成,有效管理数据库连接,提高系统...

Global site tag (gtag.js) - Google Analytics