`
yuanyao
  • 浏览: 149105 次
  • 性别: Icon_minigender_1
  • 来自: 就那小山沟
社区版块
存档分类
最新评论

Hibernate异常openSession()与getCurrentSession

阅读更多
   在之前的Hibernate学习中总会在HibernateSessionFactory中实现getSessionFactory(),之后用getCurrentSession()去获取Session.但是,在程序运行的时候抛出了异常:
org.hibernate.HibernateException:  No  CurrentSessionContext  configured!  

   异常信息是没有当前的Session的意思,我又仔细的看了一下代码,感觉没什么错误,一切都OK,重新部署了一下,运行还是不行,GOOGLE了一下,查看了一下Hibernate API Documentaction才知道原来是getCurrentSession()这个方法在搞鬼.之后把getCurrentSession()改成了openSession(),Ok程序跑起来了~!~~

这两个方法的区别

getCurrentSession():
   getCurrentSession()是SessionFactory接口里的一个方法, getCurrentSession()获取当前的Session,return的是当前的Session.

openSession():
   openSession()也是SessionFactory接口里的一个方法, openSession()是先创建一个数据库连接,之后在这个连接的基础上打开一个Session.return的是打开的这连接.
分享到:
评论

相关推荐

    getCurrentSession 与 openSession() 的区别

    在Java的Hibernate框架中,`getCurrentSession()` 和 `openSession()` 都是用于获取与数据库交互的Session对象,但它们之间存在显著的区别。理解这些差异对于优化数据访问性能和管理事务至关重要。 首先,`...

    新Hibernate SessionFactory().getCurrentSession()猫腻

    当我们调用SessionFactory().getCurrentSession()时,Hibernate会为我们提供一个已存在的或者新创建的Session实例,这个行为与直接调用SessionFactory.openSession()有所不同。`getCurrentSession()`方法旨在支持...

    SessionFactory.getCurrentSession与openSession的区别

    理解 `SessionFactory.getCurrentSession()` 和 `Session.openSession()` 的区别对于优化和正确使用Hibernate至关重要。 首先,`SessionFactory` 是Hibernate中的一个接口,它是一个全局的、线程安全的工厂类,用于...

    ssh中getCurrentSession的使用

    2. **为什么使用getCurrentSession()**:与直接调用`openSession()`创建新的Session相比,`getCurrentSession()`有以下优势: - 它能够自动管理Session的生命周期,比如在请求结束时关闭Session,避免资源泄露。 -...

    Hibernate存储Clob字段的方式总结

    同时,还探讨了Hibernate框架中getCurrentSession()与openSession()的区别。 首先,要操作数据库中的Clob字段,需要关注的是如何在Java对象与Clob字段之间进行转换。由于Clob字段通常用于存储大量文本数据,如果...

    Spring视频教程(3)

    2. **编程式事务与OpenSession/GetCurrentSession的区别**: 编程式事务处理是手动管理事务边界,而OpenSession/GetCurrentSession模式则是在操作数据库时自动开启和关闭Session。这两者在事务管理和性能上有不同的...

    Hibernate的框架的总结

    本文将深入探讨Hibernate中的关键配置文件与API,并对其中涉及的重要概念和技术进行详细介绍。 #### 二、核心配置文件详解 ##### 1. hibernate.cfg.xml 文件 - **简介**:`hibernate.cfg.xml` 是Hibernate的核心...

    HIBERNATE4开发文档,HIBERNATE4的变化

    - 错误2:`java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session` - 解决方案:由于Hibernate4移除了HibernateDaoSupport,需要改写DAO层,直接使用Hibernate...

    2020版Hibernate 12 道.pdf

    11. Hibernate中getCurrentSession和openSession的区别是什么? `getCurrentSession`是用于在已有的事务上下文中获取或创建Session,确保与当前事务的一致性。而`openSession`则是直接创建一个新的Session,不考虑...

    hibernate 4.3.10 版本的笔记

    - `getCurrentSession()`方法则会在当前线程中获取一个Session,如果当前线程没有Session,则会自动创建一个新的Session。这种方式适用于需要跨多个方法调用的事务管理。 #### 四、Hibernate生命周期状态 - **瞬...

    [尚硅谷]_佟刚_Hibernate面试题分析

    - 主要用于解决懒加载异常,将Hibernate Session与请求线程绑定,保证页面读取数据时Session开启状态。 - 遇到业务处理数据量大时,可能会引起内存溢出或者数据库连接问题。 - 解决方式可以考虑使用迫切左外连接...

    hibernate的事务核并发

    标题:“Hibernate的事务与并发控制” 描述:本文深入解析了Hibernate框架中事务管理和并发控制的核心概念及其实现机制,基于一份详尽的“hibernate详细解析.pdf”文档,覆盖了非托管环境、JTA环境下的事务处理以及...

    hibernate登录页面测试

    本测试着重于使用Hibernate构建登录页面,这对于理解Hibernate如何与Web应用程序交互至关重要。 在 Hibernate 中,登录页面通常涉及以下关键组件和概念: 1. **实体类(Entity Class)**: 这是与数据库表相对应的...

    hibernate.jar包

    - 获取Session:通过SessionFactory的openSession()或getCurrentSession()获取Session实例。 - 开启事务:在Session上开始一个新的数据库事务。 - 对象操作:执行增删改查操作,如save()、update()、delete()、...

    hibernate-spring整合

    在Spring中,我们可以使用SessionFactory的openSession()或getCurrentSession()方法获取Session实例。 4. **事务管理**: Spring提供PlatformTransactionManager接口,可以用来管理数据库事务。在Hibernate整合中,...

    Hibernate4Spring3

    在Spring中,我们可以使用`SessionFactory.openSession()`或`SessionFactory.getCurrentSession()`方法获取Session实例。 4. **事务管理**:Spring提供了声明式事务管理,只需在方法上添加@Transactional注解,即可...

    hibernate关于session的关闭实例解析

    本文详细介绍了 Hibernate 中 Session 的关闭实例解析,包括 getSession() 和 openSession() 的区别、getCurrentSession() 的配置、openSession() 和 getCurrentSession() 的关联,以及 Session 的关闭。希望本文...

    详细解释Spring与Hibernate的整合原理

    ### 详细解释Spring与Hibernate的整合原理 #### 引言 在现代软件开发尤其是企业级应用开发中,Spring 框架和 Hibernate 是两个极为重要的技术。Spring 是一个开源的应用框架,提供了广泛的基础设施支持,而 ...

    hibernate 学习笔记

    hibernate 学习笔记: 了解hibernate的基本概念 配置hbm.xml cfg.xml 快速入门案例3: 从domain-xml-数据库表 ...openSession()和getCurrentSession() 线程局部变量模式 transaction事务 在web项目中开发hibernate

Global site tag (gtag.js) - Google Analytics