用hibernate处理数据的时候,出来这么个异常,以后注意session.flush( )
exceptionorg.hibernate.SessionException: Session is closed!
错误代码:
session = HibernateUtil.openSession();
session.beginTransaction();
String sql="from IfBid";
Query query = session.createQuery(sql);
session.getTransaction().commit();
list= (ArrayList) query.list();
session.close();
改正后
session = HibernateUtil.openSession();
session.beginTransaction();
String sql="from IfBid";
Query query = session.createQuery(sql);
list= (ArrayList) query.list();
session.flush();
session.getTransaction().commit();
在finally{}里面HibernateUtil.closeSession(session);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lifesounds/archive/2008/04/16/2297447.aspx
在与事务结合的时候好像不用关闭session,
也就是说,事务和session.close()选择其中的一个就可以了 。
特别是在与Spring整合的时候用到了session这个对象,
可能是交给了 Spring管理之后就交给了事务来管理 了。
分享到:
相关推荐
Hibernate Session 绑定线程解决方案 在 Java web 开发中, Hibernate 是一个非常流行的 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到关系数据库中。然而,在使用 Hibernate 进行数据库操作时,...
本文将深入探讨Hibernate中的事务处理,特别是“当前线程中的Session”这一概念,以及如何在实际开发中有效地利用它。 在Hibernate中,Session是与持久化层交互的主要接口,它负责对象的持久化、检索、更新和删除等...
12. **缓存机制**:Hibernate支持一级缓存(Session级别的)和二级缓存(SessionFactory级别的),能提高数据访问效率。 13. **一对多、多对一、一对一关系映射**:理解如何在实体类间建立这些关联关系,并在映射...
4. Session与Transaction:讨论Hibernate中的Session接口,它是与数据库进行交互的主要接口,以及事务管理的重要性,如何处理并发和回滚操作。 5. 查询语言HQL:介绍Hibernate Query Language,一种面向对象的查询...
然而,在某些特定场景下,我们可能并不需要频繁地打开和关闭Session,这时“Hibernate-nosession”就显得尤为重要。本文将深入探讨Hibernate-nosession的概念、应用场景以及如何在实际代码中实现。 首先,理解什么...
1. Hibernate架构:书中首先会讲解Hibernate的整体架构,包括其核心组件如SessionFactory、Session、Transaction等,以及它们在数据访问流程中的角色。 2. 映射机制:Hibernate通过XML或注解的方式实现对象与数据库...
总的来说,Hibernate的Session接口提供了一套完整的对象持久化和数据库操作机制,使得开发者能够以面向对象的方式处理数据,极大地提高了开发效率和代码的可读性。通过深入理解和熟练运用Session,可以轻松地在Java...
在IT行业中,数据库操作是应用程序的核心部分,而事务处理是确保数据一致性、完整性和可靠性的关键机制。在Java领域,Hibernate作为一款强大的对象关系映射(ORM)框架,提供了便捷的方式来处理数据库事务。本篇文章...
在Java开发中,尤其是涉及到大数据量的处理时,人们往往会质疑ORM框架,如Hibernate,是否适合进行批量数据操作。然而,实际上,通过适当的技术手段,我们可以有效地解决Hibernate在批量处理时可能出现的性能问题。...
本文将深入探讨Hibernate中的核心概念——Session管理。 首先,理解Session在Hibernate中的角色至关重要。Session是Hibernate的主要工作单元,它是应用程序与数据库之间的桥梁。它负责保存、检索和更新Java对象,...
- **缓存的同步更新**: 当 Session 清理缓存时,Hibernate 会检查缓存中的对象状态是否发生变化,并同步更新数据库,从而确保数据一致性。 - **缓存相关方法**: - **`flush()`**: 刷新缓存并执行必要的 SQL 语句,...
与Web开发中的`HttpSession`不同,`Hibernate Session`与JDBC的`Connection`更为相似,负责处理数据的持久化操作。`Session`具有短暂的生命周期,通常在一次数据库事务的开始和结束之间创建和关闭。 `Session`具有...
在处理数据时,Hibernate的核心组件Session和SessionFactory需要手动初始化。在Java SE应用中,我们可以创建SessionFactory实例,然后使用SessionFactory创建Session,进而进行CRUD操作。例如: ```java Properties...
标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...
Hibernate的Session接口是Java应用程序与Hibernate之间主要的运行时交互接口,它提供了对持久化对象的创建、读取和删除操作。Session的概念是基于对象的状态管理和数据库事务的,它的生命周期通常与一个物理事务绑定...
`Session.flush()`方法是一个关键的操作,它强制Hibernate将内存中的对象状态同步到数据库,确保数据的一致性。这篇博客深入探讨了`Session.flush()`的工作原理和应用场景。 `Session`在Hibernate中主要有以下职责...
在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据管理。本篇文章将深入探讨Hibernate中的三种主要查询方式:HQL(Hibernate Query ...
对于集合类的数据,如List、Set等,Hibernate提供了特殊的处理方式,称为集合缓冲区,以优化其在二级缓存中的存储和访问。 1. **集合缓冲区的概念**: 集合缓冲区是二级缓存中专门用于存储关联集合的区域。由于...
【标题】"Hibernate 显示数据库数据" 在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以用Java对象来操作数据库记录。本教程针对初学者,将介绍如何使用...
3. org.hibernate.Session Interface:提供了相关的数据库操作,如添、更、删、加、查等基本操作,非线程安全,轻量级,其创建及销毁消耗资源少。每个客户请求对应一个 Session。 4. org.hibernate.Transaction ...