`
liyanhui
  • 浏览: 350460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate异常之表的映射

阅读更多

  在这几天遇到的异常把我郁闷坏了,虽然几个异常提示不一样,但是最后的解决途径是一样的
  下面是几个异常:
1javax.servlet.ServletException: Error creating bean with name 'userServiceProxy' defined in class path resource [spring/applicationContext_user.xml]: Can't resolve reference to bean 'transactionManager' while setting property 'transactionManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [spring/applicationContext_user.xml]: Can't resolve reference to bean 'sessionFactory' while setting property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring/applicationContext_user.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: Could not determine type for: Long, for columns: [org.hibernate.mapping.Column(DEPTID)]





2javax.servlet.ServletException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.lyh.service.userservice.entity.LyhUser.setDeptid; nested exception is org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.lyh.service.userservice.entity.LyhUser.setDeptid

         org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)

         org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)

         org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)

         org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)

         org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

         javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)





root cause



3org.springframework.orm.hibernate3.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.lyh.service.userservice.entity.LyhUser.setDeptid; nested exception is org.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.lyh.service.userservice.entity.LyhUser.setDeptid

         org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:661)

         org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:413)

         org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:370)

         org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:817)

         org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:809)

         com.lyh.service.userservice.dao.impl.UserDAOImpl.login(UserDAOImpl.java:41)

         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

         java.lang.reflect.Method.invoke(Method.java:585)

         org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)

         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)

         $Proxy3.login(Unknown Source)

         com.lyh.service.userservice.manage.impl.UserManageImpl.login(UserManageImpl.java:29)

         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

         java.lang.reflect.Method.invoke(Method.java:585)

         org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)

         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)

         $Proxy2.login(Unknown Source)

         com.lyh.service.userservice.impl.UserServiceImpl.login(UserServiceImpl.java:47)

         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

         java.lang.reflect.Method.invoke(Method.java:585)

         org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)

         org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:165)

         $Proxy1.login(Unknown Source)

         com.lyh.web.action.UserAction.login(UserAction.java:59)

         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

         java.lang.reflect.Method.invoke(Method.java:585)

         org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)

         org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)

         org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)

         org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)

         org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)

         org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

         javax.servlet.http.HttpServlet.service(HttpServlet.java:709)

         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)





不是很懂意思  , 最好的解决办法是什么 ?前面说的



查询结果中包含null的值,对于一些数字或boolean包含null,定义该项时必须使用wrapper类型,而不能是primitive类型,例如使用Integer而不能是int,Boolean而不能是boolean否则会抛出exception



不是很明白意思,如果不想对数据库进行修改那要么样做啊 ?我用的eclipse+myeclipse



导致原因: 数字型字段值为空.

解决方法:

补充下,主要是数据库中的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" />

        </property>
分享到:
评论
9 楼 haoxinren 2012-09-21  
   :   不错 果然是hibernate 对数据库字段的问题。
8 楼 tsinglongwu 2010-09-17  
wf_chn 写道
  
偶也遇到同样的问题,多亏看了你的博客,谢谢

今天我也碰到了这个问题,搞了半天,一开始也怀疑是类型有问题,呵呵,终于搞定了。。。
7 楼 hite 2009-12-01  
改为:
        <property name="cityid" type="java.lang.Long"  not-null="true">

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

        </property>

除了做上述改动外,还需要把改为:
Long cityid;才可以。
6 楼 wf_chn 2008-05-06  
  
一起学习,一起进步
5 楼 liyanhui 2008-05-05  
在hibernate中,有许多地方都有对null值的要求,我也是二把刀子,咱们一起学习,一起努力
4 楼 wf_chn 2008-05-05  
我又测了一下,是因为在composite-id中,所以value不能为空
3 楼 wf_chn 2008-05-05  
事实上我的问题是一个timestamp类型的转date类型的,因为值为null,而这个field还要映射成为composite-id的一个key-property,我现在不知道是哪个环节出了错,是因为null值,还是因为composite-id,我还需要再试试
2 楼 liyanhui 2008-05-05  
hibernate 用起来简单上手,但是其配置太灵活,用好却不容易
1 楼 wf_chn 2008-05-05  
  
偶也遇到同样的问题,多亏看了你的博客,谢谢

相关推荐

    JAVA数据类型与Hibernate的类型映射

    而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据。这篇博客主要探讨了Java数据类型如何与Hibernate的类型映射进行对应。 首先,Java的基本数据类型在...

    hibernate动态映射表处理oracle的clob类型

    3. **动态映射**:动态映射是Hibernate的一种映射方式,它允许在运行时根据数据库表结构自动创建实体类的映射。这意味着,如果你的数据库表中包含CLOB列,Hibernate会自动识别并处理。 4. **处理CLOB的策略**: - ...

    Hibernate映射导致的几个异常

    标题与描述概述的知识点主要集中在Hibernate映射过程中可能遇到的各种异常情况,这涉及到数据库与对象模型之间的映射问题,以及Hibernate框架在处理这些映射时可能产生的错误。下面将对这些异常进行详细的解释和分析...

    hibernate5.2版本配置和映射dtd文件

    当解析配置或映射文件时,DTD会验证文件是否符合规则,如果存在错误,解析器会抛出异常。 总结,Hibernate 5.2的配置和映射DTD文件是其正常工作的重要组成部分。理解这些文件的结构和内容对于正确配置和使用...

    Spring+Hibernate 一对一映射级联增删改查小例子

    在Java Web开发中,Spring和Hibernate是两个非常重要的框架,它们分别是依赖注入和对象关系映射(ORM)的杰出代表。本示例将探讨如何在Spring与Hibernate整合的环境中实现一对一(OneToOne)映射,并进行级联操作,...

    hibernate 主键一对一映射(单向) 实例(java类)

    在Java的持久化框架Hibernate中,一对一(One-to-One)映射是一种常见的关系映射方式,它用于表示两个实体之间一对一的关联关系。在这种关系中,一个实体对应另一个实体的唯一实例。本实例将深入探讨如何在Hibernate...

    hibernate 常见异常

    本文将深入探讨Hibernate常见的异常,以及与之相关的依赖库。 首先,我们看到的`java.lang.NoClassDefFoundError`是一个典型的运行时异常,表示在类加载时找不到对应的类定义。这通常意味着在编译时存在所需的类,...

    hibernate的关系映射

    关系映射是Hibernate的核心特性之一,它允许我们将复杂的数据库结构与Java类之间建立起灵活的映射关系。 **一、什么是关系映射** 关系映射是将数据库中的关系模型(如表、字段等)映射到对象模型(Java类和它们的...

    hibernate基础 二 关联映射 级联操作

    ### Hibernate基础之关联映射与级联操作 #### 第一部分:主键生成策略与对象状态管理 ##### 主键生成策略 在使用Hibernate框架时,合理的主键生成策略能够极大地简化开发工作并提升应用性能。Hibernate提供了多种...

    Hibernate一对一关联映射(注解)

    本话题主要探讨的是Hibernate中的一对一关联映射,这是一种将数据库中的单个表映射到Java对象模型中单个类的关系映射技术。通过注解方式实现一对一关联映射,可以避免传统的XML配置文件,使得代码更加简洁、易读。 ...

    Hibernate双向一对一关联映射(注解版)

    综上所述,Hibernate双向一对一关联映射是通过注解实现的数据库表之间的关系映射,它提高了代码的可读性和可维护性。正确理解和运用这一技术,对于构建高效、灵活的Java应用程序至关重要。在实际开发中,要结合具体...

    hibernate常见异常

    是 Hibernate 中的一种常见异常,通常是由于映射文件出现错误所致。当出现 net.sf.hibernate.MappingException: Error reading resource:… 异常时,可能是由于 XML 配置文件中的错误,或者 XML 配置文件没找到所致...

    Hibernate自动创建表结构示例--Oracle

    - "validate":检查实体类和表结构是否匹配,如果不匹配则抛出异常。 - "none":不做任何操作,需要手动管理数据库表。 在这个示例中,我们可能将`hibernate.hbm2ddl.auto`设置为"create",以便在Oracle数据库中...

    hibernate对象关系映射案例demo

    **hibernate对象关系映射案例demo** 在Java开发领域,对象关系映射(ORM)是一种将数据库中的数据与程序中的对象进行关联的技术,它极大地简化了数据操作。Hibernate作为一款流行的ORM框架,使得开发者无需关注底层...

    Hibernate 相关映射关系

    在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细探讨Hibernate中的映射关系,主要包括实体之间的一对一、一对多、...

    Spring+Hibernate StringIndexOutOfBoundsException String index out解决方法

    在使用 Spring 和 Hibernate 进行开发时,可能会遇到 StringIndexOutOfBoundsException 异常,这个异常的出现是由于 Hibernate 的映射文件和数据库中表的字段不一致所导致的。在本文中,我们将详细介绍这个异常的...

    hibernate核心,一对多,多对多映射讲解,看了就完全搞明白了

    在本章中,我们将深入探讨Hibernate中的关联映射,包括一对多、多对一以及多对多的关系。这些映射关系对于理解如何在Java应用程序中有效地管理数据库对象至关重要。 首先,我们来解决描述中提到的问题。`...

    hibernate(user-role多对多映射)

    在IT行业中,关系型数据库管理和持久化框架是关键部分,特别是在Java领域,Hibernate作为一个流行的ORM(对象关系映射)框架,极大地简化了数据库操作。本文将深入探讨如何在Oracle数据库中利用Hibernate实现User与...

Global site tag (gtag.js) - Google Analytics