异常栈:
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
at org.springside.modules.orm.hibernate.SimpleHibernateDao.getSession(SimpleHibernateDao.java:90)
at org.springside.modules.orm.hibernate.SimpleHibernateDao.createCriteria(SimpleHibernateDao.java:284)
at org.springside.modules.orm.hibernate.SimpleHibernateDao.findUniqueBy(SimpleHibernateDao.java:165)
使用SessionFactory.getCurrentSession执行hibernate操作时,hibernate的操作默认必须包含在一个transaction中,也就是开始要用session.begionTransaction得到一个transaction 实例(譬如tx), 操作结束时在这个实例上进行事务的提交tx.commit或回滚tx.rollback. 如果这些CRUD操作不被包括在一个具体的transaction中,hibernate就会抛出上述异常。
在实际的SSH web应用开发中,我们通常用spring来进行事务的管理。我们一般不会在dao层使用transaction,事务被配置在service层上更为合理,因为业务层方法表示逻辑上的一个原子操作。在这种环境下,如果你遇到上述异常,请考虑一下service层上没有配置transaction,transaction有没有打开!
分享到:
相关推荐
然而,在使用 Hibernate 进行数据库操作时,经常会遇到 "No Hibernate Session bound to thread" 的错误信息。本文将详细介绍该错误的解决方案。 错误原因 "No Hibernate Session bound to thread" 错误信息通常是...
问题描述 用SpringBoot + Spring Data JPA操作数据库 项目启动的时候 报了一个错 SpringBoot的版本是2.2.6.RELEASE org.springframework.beans.factory.BeanCreationException: Error creating bean with name '...
4. Hibernate框架错误:文档还包含了“org.hibernate.HibernateException: No Hibernate Session bound to thread”等错误信息,这是Hibernate框架常见的异常,表明在当前线程上没有绑定Hibernate Session。...
本篇文章将探讨如何对Hibernate的`Session`进行简单的包装,以提升代码的可维护性和灵活性。`Session`是Hibernate的核心组件,它负责对象的持久化操作,如保存、更新、查询等。 `Session`接口提供了多种方法来与...
由于项目需求的需要,我们引入了连接池。...我们采用了Hibernate,所以可以考虑hibernate自带的连接池机制,但是发现效率不高,而且Hibernate也推荐使用c3p0或Proxool连接池,在我们的项目中采用了Proxool
5. 异常体系:理解Hibernate的异常体系,如HibernateException、ConstraintViolationException等。 6. Session和Transaction:理解Session的生命周期和事务管理,以及它们在实际应用中的最佳实践。 本章作为...
2、报错:org.hibernate.HibernateException: No Session found for current thread 意思是必须在transcation.isActive()条件下才能执行, 可以解决办法是:当方法不需要事务支持的时候,使用 Session ...
13. **异常体系**:Hibernate有自己的异常体系,如`HibernateException`,方便开发者捕获和处理错误。 综上所述,`hibernate3.5完整jar`包含了上述的诸多功能和优化,是Java开发者处理数据库操作的强大工具。通过...
- **错误处理和异常处理**:在获取Session或执行数据库操作时,应捕获并处理可能出现的HibernateException和其他相关异常。 通过以上步骤,你可以理解并实现Hibernate在Java应用中手动获取Session的方法。学习和...
11. 异常体系:Hibernate有一套完整的异常体系,如HibernateException、ConstraintViolationException等,这些异常可以帮助开发者识别和处理数据库操作中出现的问题。 12. 高级特性:包括 Criteria API、HQL、子...
* Configures and provides access to Hibernate sessions, tied to the * current thread of execution. Follows the Thread Local Session * pattern, see {@link http://hibernate.org/42.html }. */ public ...
3. Session与Transaction:Session是Hibernate的主要工作单元,负责对象的持久化操作。Transaction管理数据库事务,确保数据的一致性。在Session中,可以进行对象的CRUD(创建、读取、更新、删除)操作。 4. 映射...
12. **异常处理**:理解和处理Hibernate特有的异常,如HibernateException、ConstraintViolationException等,是使用过程中必须面对的。 这个"Hibernate_01_HelloWorld"示例很可能是展示了一个简单的Hibernate应用...
数据持久化是通过Hibernate的核心接口Session来实现的。Session提供了对数据库的 CRUD(创建、读取、更新、删除)操作,它是连接应用程序和数据库的桥梁。在Hibernate中,对象的状态有三种:瞬时态、持久态和脱管态...
- **HibernateException**:所有Hibernate异常的基类。 - **SQLGrammarException**:执行SQL语句时发生的异常。 - **ConstraintViolationException**:违反数据库约束时抛出的异常。 #### 十、性能优化 - **查询...
主要的类和接口包括SessionFactory、Session、Transaction以及Criteria API和HQL(Hibernate Query Language)。 2. JPA支持:虽然Hibernate最初是作为一个独立的ORM框架,但随着Java Persistence API(JPA)的出现...
- **异常处理**: Hibernate提供了多种异常类型,用于指示不同的错误情况,如`HibernateException`。 - **日志记录**: 可以配置日志框架(如Log4j)来记录Hibernate的操作细节,帮助调试和故障排查。 #### 九、集成...
5. 异常处理:Hibernate将SQL异常转换为特定的HibernateException,便于理解和处理。 总之,Hibernate 5.4.25为Java开发者提供了强大的数据持久化解决方案,通过合理的jar包配置和应用,可以极大地提升开发效率,...