`

hibernate常出现的错误总集

 
阅读更多
问题1:An association from the table refers to an unmapped class
答案:一般都是包名和类名不对,有的是没有大写,这个问题的贴吧:http://www.blogjava.net/jjshcc/archive/2010/05/12/320705.html

问题2:org.hibernate.id.Identifier Generation Exception: ids for this class must be manually assigned before calling save(): com.gz.bean.SystemModule at org.hibernate.id.Assigned.generat(Assigned.java:56)
答案:出现这个错误的原因有可能因为,你的表中有个主键。 但是你插入的(调用save)时那个值是null
你要操作的数据表中的id(即主键)的类型设置成了“自动增长类型”,而在你的
hibernate.cfg.xml中,id的生成方式是assigned,即把主键的生成方式改为native,它的特征是能够根据底层数据库自动选择主键生成方式


问题3:Remember that ordinal parameters are 1-based!
原因是
问题发生的原因是:hql语句里不需要参数,却添加了一个参数,删掉添加参数的语句就可以了!
我的HQL语句:String hql="from Users as u where u.username=‘?’ and u.userpassword=‘?’";
Object[] param=new Object[]{“admin”,“000000”};
this.getHibernateTemplate().find(hql,param);
将HQL语句中''中的?没有解析成占位符,确解析成字符串了。
改成如下形式
String hql="from Users as u where u.username=? and u.userpassword=?";
Object[] param=new Object[]{“admin”,“000000”};
this.getHibernateTemplate().find(hql,param);


问题4:Association references unmapped class:   com.gz.ssh.bean.Positionrights
答案:看与Postionrights相关的类的路路径是不是不对


问题5:当我在页面上删除数据是出现:Could not execute JDBC batch update
答案:把要操作这个表的配置文件的一对多的级联设置一下就行。最好设置成all,或者id的值设置为唯一,或者有的属性不能为空,而保存的时候没有赋值


问题6:could not initialize proxy - no Session
答案:把<many-to-one >中的lazy="false",把这个变量设置一下就行啦。


问题7:ids for this class must be manually assigned before calling save()
原因:因为主键生成的方式是assigned,所以主键的值要自己写入,而在保存的时候,没有给主键赋值
答案:给主键赋值


问题8:No row with the given identifier exis
原因: 在Ostaff类中的配置文件<many-to-one name="ODept" class="com.gz.bean.ODept" fetch="select" lazy="false">
         <column name="DEPTNO" length="16" />
        </many-to-one>没有找到相关联的外键。。。


问题9:Could not execute JDBC batch update
答案一般都是没有设置级联关系


问题10:a different object with the same identifier value was already associated
答案
:在hibernate中同一个session里面有了两个相同标识但是是不同实体。
解决方法一:session.clean()
   PS:如果在clean操作后面又进行了saveOrUpdate(object)等改变数据状态的操   作,有可能会报出"Found two representations of same collection"异常。

解决方法二:session.refresh(object)
  PS:当object不是数据库中已有数据的对象的时候,不能使用session.refresh(object)因为该方法是从hibernate的session中去重新取object,如果session中没有这个对象,则会报错所以当你使用saveOrUpdate(object)之前还需要判断一下。

解决方法三:session.merge(object)
PS:Hibernate里面自带的方法,推荐使用。
2、Found two representations of same collection
错误原因:见1。
解决方法:session.merge(object)
以上两中异常经常出现在一对多映射和多对多映射中




分享到:
评论

相关推荐

    Hibernate配置常见错误

    错误表现:在初始化SessionFactory时,可能出现“org.hibernate.HibernateException: Could not instantiate dialect class”等异常,这通常是因为Hibernate配置文件中的dialect设置不正确或对应的JDBC驱动未引入。...

    hibernate常見錯誤

    ### Hibernate常见错误解析 #### 一、`java.lang.NoClassDefFoundError`:net/sf/ehcache/CacheException 在启动Hibernate时遇到此类错误通常是因为类路径(Classpath)中缺失必要的jar包。具体到这个例子中,问题...

    hibernate,struts,spring 常见错误信息

    一、Hibernate错误 Hibernate是Java持久层框架,它简化了数据库操作。常见的错误包括: 1. **配置错误**:如XML配置文件中的实体映射错误、数据源配置错误等,可能导致SessionFactory无法创建。 2. **SQL异常**:...

    Hibernate错误及解决办法集合

    因此,在Hibernate中,如果实体类只定义了带参数的构造函数而没有定义无参构造函数,就可能会出现此错误。 **解决方案**: 1. **添加无参构造函数**:在实体类中显式地添加一个无参构造函数。 ```java public ...

    hibernate常见错误解决方案

    ### Hibernate常见错误解决方案 在开发基于Hibernate框架的应用程序时,我们经常会遇到各种各样的异常情况。这些异常不仅会影响系统的正常运行,还可能增加调试难度。本文将针对几个常见的Hibernate异常进行详细...

    Hibernate几个常见错误解决方式

    在使用Hibernate进行数据库操作时,可能会遇到各种错误。这些错误通常是由于配置问题、SQL语法错误、类型不匹配或实体属性与数据库映射不一致导致的。以下是对标题和描述中提及的一些常见错误及其解决方法的详细说明...

    使用Hibernate一些常见错误解决办法

    这样可以在当前线程中自动管理会话,避免出现上述错误。 4. **其他常见问题**: - **实体类未映射**:确保所有实体类都被正确地映射并在配置文件中声明。 - **数据库连接问题**:检查数据库URL、用户名、密码...

    hibernate错误示例一

    标题“Hibernate错误示例一”表明我们将探讨在使用Hibernate这个流行的Java对象关系映射(ORM)框架时可能会遇到的问题。Hibernate允许开发人员将Java对象与关系数据库中的表进行映射,简化了数据操作,但同时也可能...

    hibernate aip hibernate aip

    9. **错误处理和日志记录**:理解Hibernate常见的错误和异常,如 detached entity passed to persist 等,并配置合适的日志系统,如Log4j或SLF4J,以便追踪应用运行状态。 总的来说,Hibernate AIP涵盖了从项目初始...

    Hibernate,hibernate笔记

    如果遇到错误,例如配置错误导致browse无法选择正确的项目目录,可能需要手动修改`.project`文件的natures部分,确保包含Hibernate的nature。 总的来说,Hibernate是Java开发中的重要工具,它通过ORM解决了数据库...

    hibernate3 hibernate3

    如果发生错误,可以调用rollback()回滚事务。 6. 关闭Session:每次操作完毕,记得关闭Session以释放资源。 总结起来,Hibernate3是Java开发中的强大工具,它极大地简化了数据库操作,提高了开发效率。理解并熟练...

    Hibernate入门到精通

    "Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...

    Hibernate4.0,Hibernate5.2,Hibernate5.6 jar包

    5.6版本还提供了更好的类型安全性和错误检查,减少了运行时错误的可能性。对于大数据量的处理,增加了批量操作和流式API的支持,以提高效率。此外,此版本还增强了对NoSQL数据库的支持,反映了现代应用程序多样化的...

    hibernate jar包:hibernate-commons-annotations-4.0.1.Final.jar等

    Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...

    Could not roll back Hibernate transaction.doc

    Hibernate的事务回滚机制是指在事务执行过程中,遇到错误或异常时,Hibernate可以自动回滚事务,以确保数据库的一致性和完整性。Hibernate的事务回滚机制可以避免数据库的一致性和完整性问题。 六、总结 本文详细...

    Hibernate完整使用教程

    Hibernate 的出现是为了解决传统的 JDBC 编程中的问题。传统的 JDBC 编程需要编写大量的代码来处理数据库交互,而 Hibernate 则提供了一种简洁的方式来访问关系数据库。 Hibernate 的主要优点是: * 简化了数据库...

    org.hibernate.HibernateException: No Hibernate Session bound to thread

    然而,在使用 Hibernate 进行数据库操作时,经常会遇到 "No Hibernate Session bound to thread" 的错误信息。本文将详细介绍该错误的解决方案。 错误原因 "No Hibernate Session bound to thread" 错误信息通常是...

Global site tag (gtag.js) - Google Analytics