- 浏览: 240169 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
akka_li:
学习了!但是为什么后续的没有了?!
EJB4:RMI和RMI-IIOP -
springaop_springmvc:
apache lucene开源框架demo使用实例教程源代码下 ...
Lucene学习笔记(一)Lucene入门实例 -
qepipnu:
求solr 客户端 jar包
Solr学习笔记(三)Solr客户端开发实例 -
zhangbc:
是这问题,赞!
Oracle Start Up 2 Oracle 框架构件、启动、解决一个问题 -
feilian09:
查询 select hibernate jdbc 那个效率快
Hibernate,JDBC性能探讨
在我使用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时出错,错误如下:
原因是:我在POJO类Group中写了构造方法,所以当get方法得到persistent状态的Group时,不能够生成对象,
修改方法:
将POJO类中的构造方法去掉即可
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类中的构造方法去掉即可
发表评论
-
Oracle - Add Exist Validation Before Create Table
2011-11-07 13:49 1457Usually we need to check the ta ... -
JMX Architecture & "Hello Word" the JMX way
2011-10-25 20:07 1814JMX Architecture Overview: JMX ... -
Jboss-eap-5.1 Messaging
2011-08-02 21:50 2473This section I will concertate ... -
Jboss-eap-5.1 starting up note
2011-07-26 22:46 2585Jboss enterprise platform 5 hav ... -
EJB Security & JAAS Demo
2011-05-21 19:39 1615PROLOGUE: When deploying ... -
JBoss LoginInitialContext Factory Implementation
2011-05-15 16:05 1534Jboss has a series of imp ... -
Jboss Reference Exception Gallery
2011-04-27 14:08 28921. Unable to locate a login con ... -
Hibernate Annotation 的一个问题,给点意见
2011-03-10 12:43 22问题:org.hibernate.annotations. ... -
大家说说BBC的网站用的是什么技术做的
2011-02-22 05:01 1438最近在英国出差,发现这里的一些网站做的相当有特色,有些网站不是 ... -
Hibernate OneToMany 单向和双向配置对数据存取性能的比较
2011-02-08 17:06 23201. 开篇说明:今天是春 ... -
对Hibernate属性(CascadeType、JoinColumn、JoinTable、ForeignKey等)的研究
2010-12-26 15:45 16675本文列出几个“EJB 学习阶段总结:JBoss下发布一个Toy ... -
EJB 学习阶段总结:JBoss下发布一个Toy企业应用
2010-12-25 12:11 2634解释题目:为什 ... -
EJB7: Message Driven Bean
2010-12-21 22:42 2149在企业系统中需要使用 ... -
EJB6: EntityBean例子
2010-11-26 14:48 1493本例子描述向EJB容器(JBoss)部署http: ... -
JPA dev: 几个问题总结(续)
2010-11-25 18:02 24732. 如何由PoJo类生成数据库中的表 首先可以根据实体间关 ... -
JPA dev: 几个问题总结
2010-11-25 16:56 3404最近工作中遇到几个与JPA相关的问题,本文通过一个例子总结一下 ... -
JAXB学习
2010-11-24 22:35 01 什么是JAXB? JAXB全称Java Ar ... -
EJB5: JPA扩展-J2SE环境下使用EntityManager
2010-11-10 19:07 2708好久没有写博客了,最近比较忙,今天抽时间写点,最近 ... -
EJB4:RMI和RMI-IIOP
2010-11-02 21:14 4135计划提纲:引入→RMI概念→RMI HelloWorld程序→ ... -
EJB3: JBOSS 企业版、JBOSS服务器构架、EJB2.0 HelloWrold实例
2010-10-26 22:43 6473本文的研究基于jboss-eap- ...
相关推荐
以及SQL错误在编译时无法检查。 2. Hibernate的主要功能:它是Java应用和数据库之间的中间件,负责Java对象的持久化,提供数据访问的封装,简化了数据库操作。在分层架构中,它位于持久化层,使得业务逻辑层只需...
通过合理的关联设计,可以简化对象模型与数据库之间的转换,提高开发效率,减少潜在的错误。在实际项目中,开发者应根据业务需求灵活选择关联类型,并合理配置各种属性,以实现最佳的数据管理效果。
### Hibernate学习总结与知识点详解 #### 一、Hibernate产生的背景及优势 Hibernate作为一个持久层框架,它的诞生解决了传统编程模式中业务逻辑与数据库访问代码混杂的问题,这不仅导致程序结构混乱,降低代码的...
而 Hibernate 通过 ORM(对象关系映射)技术,将数据库操作转换为对象操作,减少了手动编写 SQL 的需求,降低了错误率。此外,Hibernate 还提供了缓存机制,进一步提高了性能。 **配置与 Hibernate 工具类** 在...
本文将针对几个常见的Hibernate错误进行深入分析,并提供相应的解决方法。这些错误包括但不限于 `org.springframework.orm.ObjectRetrievalFailureException`、`org.springframework.beans.factory....
总结起来,Hibernate3是Java开发中的强大工具,它极大地简化了数据库操作,提高了开发效率。理解并熟练掌握Hibernate3的核心概念和使用方法,对于任何Java开发者来说都是必要的技能。在实际项目中,正确配置和使用...
总结来说,这三个版本的Hibernate jar包代表了Hibernate框架在不同阶段的发展和进步。从4.0到5.6,不仅在功能上得到了增强,而且在性能和易用性方面也有了显著提升。对于需要使用Hibernate的开发者来说,选择合适的...
Hibernate的事务回滚机制是指在事务执行过程中,遇到错误或异常时,Hibernate可以自动回滚事务,以确保数据库的一致性和完整性。Hibernate的事务回滚机制可以避免数据库的一致性和完整性问题。 六、总结 本文详细...
《Spring+Struts+Hibernate(SSH)项目调试精要》 在Java Web开发领域,Spring、Struts和Hibernate组成的SSH框架组合是应用广泛的技术栈。...通过不断实践和总结,我们可以将这些经验转化为宝贵的专业技能。
**Hibernate开发各类项目的技术总结** Hibernate,作为Java领域的一个强大对象关系映射(ORM)框架,极大地简化了数据库操作,让开发者可以专注于业务逻辑而非繁琐的SQL语句。在我一年半的开发经验中,我逐渐积累了...
了解和熟练掌握这些关联关系,能够帮助开发者更好地利用Hibernate进行数据库操作,提高开发效率并减少错误。在设计数据库模型时,还需要考虑业务需求、数据规模和性能要求,以做出最佳的设计决策。
然而,在使用 Hibernate 进行数据库操作时,经常会遇到 "No Hibernate Session bound to thread" 的错误信息。本文将详细介绍该错误的解决方案。 错误原因 "No Hibernate Session bound to thread" 错误信息通常是...
在IT领域,特别是Java开发中,使用Spring、Hibernate和Struts框架进行项目开发时,开发者可能会遇到各种各样的错误和异常。以下是对给定文件中提及的一些常见问题的详细解析和解决方案,旨在帮助开发者理解并避免...
如果有错误,回滚事务。 7. 关闭资源:关闭 Session 和 SessionFactory,释放相关资源。 **实体类和映射文件** 1. **实体类**:Java 类,代表数据库中的表。通常使用 `@Entity` 注解标识,并通过 `@Table` 定义...
此外,Hibernate校验支持国际化,可以为不同的语言提供友好的错误消息。 总结 Hibernate校验作为Hibernate框架的一部分,极大地增强了Java对象的数据验证能力。通过使用JSR-303标准,开发者可以方便地在实体类中...
**标题与描述解析** 标题"hibernate最新jar包...总结,Hibernate 5.1.9是一个功能强大且经过优化的ORM框架版本,适用于需要与数据库交互的Java应用程序,它提供了丰富的API和特性,使得数据库操作变得更加简单和高效。
2. **类型安全**:编译时就能检查错误,避免运行时出现SQL注入问题。 3. **关联查询**:支持一对多、一对一、多对多关系的查询,简化了复杂查询的编写。 4. **动态查询**:允许在运行时构建查询,提高了代码的灵活性...