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

Hibernate 错误总结

阅读更多

在我使用Hibernate的过程中一直遇到一些Exception,有些Exception遇到过多次,所以打算把这些异常记录下来;

1. Hibernate不能够获取当前的Session,获取时抛出异常如下

Exception in thread "main" org.hibernate.HibernateException: No session currently bound to execution context
	at org.hibernate.context.ManagedSessionContext.currentSession(ManagedSessionContext.java:74)
	at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:700)
	at com.tibco.hibernate.coreAPI.ExceptionTest.main(ExceptionTest.java:11)

 

部分Hibernate.cfg.xml配置如下

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
         <property name="current_session_context_class">org.hibernate.context.ManagedSessionContext</property>
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>

        <property name="hbm2ddl.auto">update</property>

        <mapping class="com.tibco.hibernate.coreAPI.Student"/>

 

等效代码:

SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
		Session session = sessionFactory.getCurrentSession();

 

当我运行上面两行代码是就抛出上述异常;

解决办法:修给配置文件

<property name="current_session_context_class">org.hibernate.context.ManagedSessionContext</property>

 

替换成

<property name="current_session_context_class">thread</property>

 

原因是Hibernate版本更新造成,Hibernate3.2之前current_session_context_class 为org.hibernate.context.ManagedSessionContext, 而之后为thread,修改后就不会抛出异常

 

2. org.hibernate.exception.SQLGrammarException

异常如下:

Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [com.xxx.hibernate.many2one.uni.xml.Group]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2329)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2836)
	at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)

 原因com.xxx.hibernate.many2one.uni.xml.Group中group与Mysql中关键字冲突,

解决办法,把表名重新命名就可以

<class name="com.xxx.hibernate.many2one.uni.xml.Group" dynamic-update="true" table="t_group">

 

 

分享到:
评论
5 楼 ydwcn 2010-11-04  
不错,都是此经典的错误..
4 楼 yfnok 2010-11-04  
不錯,lz,我收藏到我的文章裏,不介意吧?哈哈
3 楼 Andrew1945 2010-08-20  
LZ hql语句中的Calendar类型的字段怎么比较大小啊!
2 楼 chenlixun 2010-08-20  
有总结,不错.
1 楼 kylinsoong 2010-08-19  
3. HIbernate get时出错,错误如下:
Exception in thread "main" org.hibernate.InstantiationException: No default constructor for entity: com.xxx.hibernate.Group
	at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:107)
	at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:123)
	at org.hibernate.tuple.entity.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:606)
	at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:3888)
	at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1412)
	at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1401)
	at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1342)
	at org.hibernate.loader.Loader.getRow(Loader.java:1251)
	at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:619)
	at org.hibernate.loader.Loader.doQuery(Loader.java:745)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadEntity(Loader.java:1933)

原因是:我在POJO类Group中写了构造方法,所以当get方法得到persistent状态的Group时,不能够生成对象,
修改方法:
将POJO类中的构造方法去掉即可

相关推荐

    Hibernate 框架总结

    对 Hibernate 框架的学习总结 映射配置已详细描述,如还是不懂得可以留言,私发你代码,如有错误,欢迎各位大神指点

    使用Spring、Hibernate、Struts的一些错误总结.txt

    使用Spring、Hibernate、Struts的一些错误总结.txt

    SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

    SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结 SpringMVC spring hibernate 集成 常见问题

    使用Spring、Hibernate、Struts的一些错误总结.mht

    对于java 开发人员来说,他绝对是良品! 对你一定会有帮助的!

    struts+hibernate+spring三大框架整合

    自己总结了一下,终于做出的Struts+Spring+Hibernate整合的小例子,也是最基础的SSH实例,虽然是小例子,但什么程序都是从基础的做起。如果你弄明白了这个小实例,相信你的SSH整合框架技术也会提高很多。 在做本例...

    《冬眠的力量-Hibernate 持久化技术详解》

    《冬眠的力量-Hibernate 持久化技术详解》这本书是本人多年基于Hibernate的系统架构设计以及系统开发经验总结和对Hibernate原理的研究成果。 本书成书于2007年8月,一直作为本人目前就职公司的内部技术手册参考,...

    hibernate 排错 宝典1

    个人经验总结 可以帮助你快快的解决错误异常

    struts+hibernate+mysql操作源码

    这是个人写的利用struts+hibernate+mysql写的源代码。。 是关于一个插入数据的操作。。 便宜啊 。。。个人经验总结啊。。 欢迎大家都来顶啊。。。下次传个更好的。。更大的。。如果有什么错误,,请联系我:85322820...

    ssh(structs,spring,hibernate)框架中的上传下载

    具体实现请参见错误!未找到引用源。节下载文件部分。  2、业务层接口实现类  FileService的实现类为FileServiceImpl,其中save(FileActionForm fileForm)的实现如下所示:  代码 8 业务接口实现类之save() 1. …...

    Java语言基础下载

    显示错误信息的标记 673 其他HTML标记 673 模板标记 673 内容总结 676 独立实践 676 第三十四章:Hibernate基础 677 学习目标 677 Hibernate简介 678 建立简单的Hibernate应用 678 通过 Hibernate API 操纵数据库 ...

    持久层框架ibatis学习笔记

    这篇iBatis 学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为 根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频 不完全一致。请谅解。

    spring杂谈 作者zhang KaiTao

    1.5 SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结 1.6 »Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了) 1.7 Spring开闭原则的表现-BeanPostProcessor扩展点-2 1.8 Spring...

    达内总结的java最新笔试题core java,sql,web应有尽有

    6. Hibernate中:不看数据库,不看XML文件,不看查询语句,怎么样能知道表结构? 7.目前几种主流数据库软件的应用特点、适用范围各是什么? 8.存储过程和函数的区别 9.试述数据库完整保护的主要任务和措施。 10.请...

    struts2.1宝典

    17.Action之间传递错误验证信息 6 18第一个Ajax例子 Ajax+struts2 6 8.标签 7 8.Select标签 7 9.Checkbox 10 10.checkboxlist 12 11.combobox 14 12.datepicker 17 9.总结 21 10.国际化资源文件占位符 为资源文件...

    JAVA项目开发全程实录(含电子书和所有源代码)

    7.11.2 为Tiles指定错误页面 347 7.12 使用MyEclipse生成Hibernate 实体类和映射文件 347 7.13 本章总结 351 第8章 企业门户网站(JSP+JavaBean +SQL Server 2000实现) 352 教学视频:1小时9分 8.1 开发背景 353 ...

    Spring面试题

    在对由三部分组成的 Spring 系列 的第 1 部分进行总结时,我使用了一个示例,演示了如何通过 Spring IOC 容器注入应用程序的依赖关系(而不是将它们构建进来)。 我用开启在线信用帐户的用例作为起点。对于该实现,...

    DWR中文文档.pdf

    37 4.5 DWR与Weblogic或PageFlow 38 4.6 DWR与Hibernate 39 4.6.1 让DWR和Hibernate一起工作的检查列表 39 4.6.2 HibernateBeanConverter 39 4.6.3 Session管理 39 4.7 DWR与WebWork 40...

    Java学习笔记-个人整理的

    {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{...

    ssh三大框架整合所需jar包

    这是本人在尝试好多次后总结的三大框架整合时所需的jar包,解决了三大框架初学者因为jar问题导致错误而找不到原因的问题,欢迎初学者下载。

    Tomcat内存溢出的三种情况及解决办法分析

    但目前的hibernate和spring项目中也很容易出现这样的问题。http://www.javaeye.com/topic/80620?page=1 的帖子有讨论的这个问题。可能是由于这些框架会动态class,而且jvm的gc是不会清理PemGen space的,导致内存...

Global site tag (gtag.js) - Google Analytics