情况为:使用 getCurrentSession()方法(且配置了Session的生命周期与线程绑定)获取Session进行操作时,出现 Session is closed 异常,但使用openSession()方法没问题。 详细代码情况和异常如下:

解决: 查完资料后得知:使用getCurrentSession()方法,进行事务提交(commit()方法)后,Hibernate框架会自动把Session缓存中的内容清空,并关闭。所以此时不需要再手动自行关闭,将 session.close()注释掉即可。