hibernate的异常 Session was already closed

今天写hibernate时候遇到一些异常

代码:

出现异常情况:

出现以上原因是Session关闭

如果不是使用的SessionFactory.getSession()来获得Session。

        而是使用SessionFactory.getCurrentSession()方法来获得Session时,当事务结束的时候,不管是提交还是回滚事务,hibernate会自动关闭Session的,

所以不需要手动关闭。

时间: 2024-10-13 12:36:53

hibernate的异常 Session was already closed的相关文章

Hibernate 常见异常

Hibernate 常见异常net.sf.hibernate.MappingException        当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文件出现错误. 当出现net.sf.hibernate.MappingException: Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入hibernate.cfg.xml中. 2

org.hibernate.NonUniqueObjectException 异常

在做hibernate修改和删除的时候,可能会遇到 org.hibernate.NonUniqueObjectException 异常,a different object with the same identifier value was already associated with the session 这个问题的出现 主要是当前状态下有一个具有相同值的不同对象已经与和 session 相关联了. 就好比: Session session = HibernateSessionFacto

分析 org.hibernate.HibernateException: No Session found for current thread

/**      *      * org.hibernate.HibernateException: No Session found for current thread      * 分析:getCurrentSession()和当前事务有关系      *      * Spring hibernate 事务的流程      *      * 1.在方法开始之前      *         ①.获取Session      *         ②.把Session 和当前线程绑定,这样

hibernate中的session用法

Session的主要功能是提供对映射的实体类实例的创建,读取和删除操作.实例可能以下面三种状态存在: 临时状态(transient): 不曾进行持久化,未与任何Session相关联 持久化状态(persistent): 仅与一个Session相关联 脱管状态(detached): 已经进行过持久化,但当前未与任何Session相关联 1,通过get()或load()方法得到的实例都是持久化状态的,把临时实例变成持久化实例 2,持久化实例可以通过调用delete(),close()变成脱管状态.

spring+hibernate整合:报错org.hibernate.HibernateException: No Session found for current thread

spring+hibernate整合:报错信息如下 org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106) at org.hibernate.internal.SessionFactoryImpl.getC

hibernate 5 创建 Session 时,所需的ServiceRegistry

hibernate 5 创建 Session,代码如下: SessionFactory factory = null; Configuration configuration = new Configuration().configure(); configuration.addClass(News.class); ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(configuration

第四讲 :hibernate中的session

hibernate中的session中可以进行增删改差,通过工具类可以得到相关的工具类. 方法概要:  Transaction beginTransaction()开始一个工作单元,得到关联的事务对象.  void cancelQuery()取消当前执行的查询.  void clear()彻底清除session.  Connection close()通过断开JDBC连结结束 Session和清除.  Connection connection() 得到JDBC连结  boolean conta

Hibernate中的Session缓存问题

1. Session 缓存: 1) . 在 Session 接口的实现中包括一系列的 Java 集合 , 这些 Java 集合构成了 Session 缓存 . 它用于存放 Session 关联的对象( Session 关联对象的方式有非常多种. 比如:session.get (Class , OID ). session.update(). session.save ()  ...). 仅仅要 Session 实例没有结束生命周期 , 且没有清理缓存.则存放在它缓存中的对象也不会结束生命周期.

Hibernate中的Session

1.Hibernate中的Session指的是什么? Session可以理解为一个可以操作数据库的对象. 2.可否将单个的Session在多个线程间进行共享? Session代表着Hibernate所做的一小部分工作,它负责维护者同数据库的链接而且不是线程安全的,也就是说,Hibernage中的Session不能在多个线程间进行共享.虽然Session会以主动滞后的方式获得数据库连接,但是Session最好还是在用完之后立即将其关闭.