我们经常遇到这种情况:给已有的类添加一个属性。在添加属性后对应的数据库表会新添加一列,一般这个列的默认值为NULL,.如果大家新添加的列为primitive类型的话,那么系统就会爆出如下的错误,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
错误提示信息:
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值
2、对于一些数字项包含null,定义该项时必须使用wrapper类型,而不能是primitive类型,例如使用Integer等,而不能是int 否则会抛出exception! 如果允许为空的字段做一包装(int-->Integer,long-->Long,double--->Double等),如果不是为空的字段,写条sql加个默认值,然后修改该表中的字段为你默认的值
分享到:
相关推荐
1. 添加依赖:将`cglib.jar`添加到项目构建路径或Maven/Gradle等构建工具的依赖管理中。 2. 创建Enhancer对象:这是CGLib的核心类,用于创建代理对象。 3. 配置回调函数:通过设置`Callback`对象,定义代理对象的...
CGLIB介绍与原理(部分节选自网络) 一、什么是CGLIB? CGLIB是一个功能强大,高性能的代码生成包。它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充。通常可以使用Java的动态代理创建代理,但当要...
1. `cglib-nodep-2.2.jar`:这是CGLIB的主要库,包含了CGLIB的所有功能,但是不依赖于其他的外部库,比如ASM。如果你的项目中已经包含了ASM,或者不需要直接使用ASM,可以选择这个版本。 2. `cglib-2.2.jar`:这个...
CGLib,全称为Code Generation Library,是一个强大的Java代码生成库,广泛用于动态代理、AOP...这个“cglib.zip”压缩包提供的内容,无论是源码还是文档,都值得我们去研究和学习,以便更好地利用CGLib解决实际问题。
1. **动态代理**:CGlib常被用作JDK动态代理的替代方案,特别是当处理的目标类没有实现接口时。通过创建目标类的子类,并在子类中拦截并增强方法调用,CGlib可以实现对无接口类的代理。 2. **AOP实现**:在Spring...
CGLib,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界中被广泛应用,尤其是在动态代理和AOP...了解并熟练掌握CGLib的使用,对于提升Spring框架的使用效率和解决问题的能力大有裨益。
1. **创建代理类**:当需要对一个类进行动态代理时,CGLIB会生成一个新的子类,这个子类继承自原始类,并添加了额外的方法用于拦截和处理方法调用。 2. **方法拦截器**:CGLIB使用`Enhancer`类来创建代理对象,并...
CGLIB,全称为Code Generation Library,是一个强大的高性能的代码生成库,被广泛应用于Java世界,尤其是Spring框架中。它允许程序在运行时动态地创建Java对象并扩展已有类的功能。CGLIB是通过字节码技术实现的,而...
JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1JavaEE源代码 cglib-2.2_beta1...
1. **Enhancer**:这是CGlib的主要入口点,用于创建动态子类。你可以传递一个类作为参数,并指定一个回调对象,这样新创建的子类就会在相应的方法上调用这些回调方法。 2. **Callback**:CGlib中的回调接口,用于...
开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4开发工具 cglib-3.2.4...
1. **Cglib**:Cglib是一个第三方库,全称为Code Generation Library。它允许开发者在运行时动态地创建子类或者增强已有对象的功能。Cglib基于ASM库,能够在字节码层面操作Java类,通过生成子类来实现对目标类的扩展...
1. **动态代理**:CGLIB是Spring框架中AOP(面向切面编程)的重要组成部分,用于在运行时动态创建子类,实现对目标对象的代理。当目标类不支持接口时,Spring会使用CGLIB来创建代理对象。 2. **性能优化**:在某些...
赠送jar包:cglib-3.1.jar; 赠送原API文档:cglib-3.1-javadoc.jar; 赠送源代码:cglib-3.1-sources.jar; 赠送Maven依赖信息文件:cglib-3.1.pom; 包含翻译后的API文档:cglib-3.1-javadoc-API文档-中文(简体)版...
cglib包及依赖汉cglib3.1和asm4.2,主要作用是用户代理,代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。...
这些源码对于开发者来说极其宝贵,因为它们允许深入理解CGLib的工作原理,有助于自定义扩展或调试遇到的问题。 CGLib主要通过两种方式实现类的动态生成: 1. **继承**:CGLib通过继承目标类来创建代理对象。它会...
3. **Callback**:CGLIB的回调机制,它是一个接口的数组,可以包含多个不同的回调类型,如MethodInterceptor、FixedValue等。这些回调接口在代理方法执行时会被调用,从而控制代理对象的行为。 4. **ASM**:CGLIB...
1. **Enhancer**:这是CGlib的主要入口点,用于创建代理对象。通过Enhancer,我们可以指定需要增强的类,并提供回调对象(Callback),后者定义了代理对象的行为。 2. **Callback**:这是CGlib的回调接口,包括...
CGLib,全称为Code Generation Library,是一个强大的高性能的代码生成库,它在Java世界中被广泛应用,尤其...通过深入学习CGLIB的源码,开发者可以更好地掌握Java的动态代理机制,提高自己的编程技巧和问题解决能力。