`
wangyanlong0107
  • 浏览: 495131 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

exception setting property value with CGLIB (set hibernate.cglib.use_reflection

    博客分类:
  • bug
 
阅读更多

    今天在开发过程中一直好好的,可是突然程序报错了,错误信息如下: 

exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.common.business.staffing.common.po.EmployeeInfoPO.setJobClass

   最开始我以为是没有setter方法,结果文件中有这个方法。

   配置文件: 

javax.servlet.ServletException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of XXX 
错误提示信息: 
javax.servlet.ServletException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of XXX

    一般是因为null造成的。例如:一个int映射到数据库中,但从数据库读取时是null值这样就会出现此中异常

解决办法:

1、手动修改数据库,修改该字段中的null值,建表的时候给这个字段一个默认值,default=0。

2、对于一些数字项包含null,定义该项时必须使用wrapper类型,而不能是primitive类型,例如使用Integer等,而不能是int  否则会抛出exception!    如果允许为空的字段做一包装(int-->Integer,long-->Long,double--->Double等),如果不是为空的字段,建表的时候给这个字段一个默认值(default=0),然后修改该表中的字段为你默认的值

 

   补充下,主要是数据库中的long ,int等原始数据类型为null,如果hibernate映射文件的字段类型为long,由于null不能赋值给原始类型,所以报错。解决方法1:让字段不为空,方法2:把映射文件的字段改为对象。如long 改为 Long ,int 改为Integer, 

double改为 Double 
例子:   
(原先) 
   <property name="cityid" type="long" > 
            <column name="CITYID" precision="22" scale="0" /> 
        </property
改为: 
        <property name="cityid" type="java.lang.Long" not-null="true"> 

            <column name="CITYID" precision="22" scale="0" /> 

这样的好处是安全。缺点是在po中也要用LONG,需要转换为long。

分享到:
评论

相关推荐

    cglib-2.2.2.jar(修订版)

    at net.sf.cglib.core.ReflectUtils.getMethodInfo(ReflectUtils.java:424) at net.sf.cglib.beans.BeanCopier$Generator.generateClass(BeanCopier.java:133) at ...

    proxool-0.9.1.jar proxool_cglib-0.9.1.jar

    标题中的"proxool-0.9.1.jar"和"proxool_cglib-0.9.1.jar"是两个Java库文件,它们是Proxool项目在0.9.1版本时的实现。Proxool是一个开源的数据库连接池,它提供了一种灵活且高效的解决方案来管理数据库连接。在Java...

    小贝程序员生活\jar\lib\com.springsource.net.sf.cglib-2.2.0.jar

    小贝程序员生活\jar\lib\com.springsource.net.sf.cglib-2.2.0.jar 小贝程序员生活\jar\lib\com.springsource.net.sf.cglib-2.2.0.jar 小贝程序员生活\jar\lib\com.springsource.net.sf.cglib-2.2.0.jar

    cglib-2.2.3.jar

    SSH2环境搭建asm和cglib的包冲突,使用cglib-2.2.3.jar

    com.springsource.net.sf.cglib-2.2.0.jar

    aop的jar包: com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

    com.springsource.net.sf.cglib-2.2.0.jar.zip

    com.springsource.net.sf.cglib-2.2.0.jar + com.springsource.org.aopalliance-1.0.0.jar + com.springsource.org.aspectj.weaver-1.6.4.RELEASE.jar + spring-aspects-4.3.11.RELEASE.jar

    java_cglib_lib.rar

    `net.sf.cglib.core.Predicate` 和 `net.sf.cglib.core.KeyFactory` 等则提供了过滤和键工厂功能。 2. **asm.jar**:ASM是底层的Java字节码操作框架,CGlib在其基础上进行抽象和封装。ASM库提供了读取、修改和生成...

    cglib-2.1.jar

    cglib-2.1.jar cglib-2.1.jar cglib-2.1.jar

    cglib_cglib.zip

    这个压缩包“cglib.zip”很可能包含了CGLib库的源码、文档和其他相关资源。 CGLib的核心功能是通过字节码技术来生成新类。它的工作原理是基于ASM库,直接操作Java字节码,生成新的类或者对已有类进行增强。当一个类...

    jmock-cglib-1.2.0.jar

    jmock-cglib-1.2.0.jar jmock-cglib-1.2.0.jar jmock-cglib-1.2.0.jar

    cglib_cglib3.2_remain3gr_cglibjar包_cglib.jar_

    而"cglib.jar"是CGLib库的可部署文件,包含所有必要的类和资源,可以被项目直接引用。确保正确地将其添加到项目的类路径中,以使代码能够利用CGLib的功能。 【使用CGLib】 使用CGLib通常涉及以下几个步骤: 1. 添加...

    cglib-2.1.3.jar

    cglib-2.1.3.jarcglib-2.1.3.jarcglib-2.1.3.jarcglib-2.1.3.jar

    cglib-3.2.5.jar

    cglib-3.2.5.jar的jar包 十分好用的一个动态代理包

    cglib-3.3.0.jar,asm-7.0.jar

    在Java编程领域,动态代理是一种常见的技术,它允许在运行时创建对象的代理,以便在调用实际方法之前或之后执行额外的操作。...这两个库在Spring AOP、Hibernate ORM等众多开源项目中都扮演着关键角色。

    hibernate-cglib-repack-2.1_3.jar

    hibernate-cglib-repack-2.1_3.jar

    cglib-2.2.jar asm-tree.jar asm-commons.jar asm.jar

    2. **性能优化**:在需要高性能代码生成的地方,如ORM框架(如Hibernate)中,CGlib可以帮助减少反射带来的性能损失。 3. **元编程**:ASM库允许开发者在运行时动态创建或修改类,这对于构建元编程框架或字节码级别...

    cglib-3.2.0.jar

    最流行的OR Mapping工具hibernate也使用CGLIB来代理单端single-ended(多对一和一对一)关联(对集合的延迟抓取,是采用其他机制实现的)。EasyMock和jMock是通过使用模仿(mock)对象来测试java代码的包。它们都通过...

    最新的cglib-2.2.2.jar

    2011-04-20 发布的cglib-2.2.2.jar

Global site tag (gtag.js) - Google Analytics