`

Spring4+Hibernate4+测试驱动开发时发现的问题:No session (上)

 
阅读更多

在Service层上配置了切面加入了事务控制,但是在Dao层上没有配置事务。

用Spring-test编写了测试Dao的类,但是运行的时候报错:

org.hibernate.HibernateException: No Session found for current thread
 at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:106)
 at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1012)

 

首先,不存在线程绑定的问题,我没有配置<prop key="hibernate.current_session_context_class">这个参数,注意是根本没加上这句话。

 

其次,也不存在Spring context之间的冲突问题。

 

最后发现问题出在SessionFactory.getCurrentSession必须放在事务中进行。在本文面对的问题上,因为是使用Spring test进行测试用例的编写,所以可以采用@Transactional标签对要测试的Dao进行事务管理。

 

 

这个事情挺神奇的,明天结合Spring和Hibernate的源码看看它们是怎么管理Session和事务的。

分享到:
评论

相关推荐

    springmvc+spring+hibernate

    Spring MVC、Spring 和 Hibernate 是Java Web开发中的三大主流框架,它们各司其职,共同构建了一个强大而灵活的后端架构。Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向...

    spring+hibernate整合实现简单数据库添加记录

    在与Hibernate整合时,我们通常会使用HibernateTransactionManager,它基于Hibernate的Session管理事务。 3. **实体类和映射文件**:定义Java实体类,这些类代表数据库中的表。每个实体类通常对应一个Hibernate的....

    在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架

    其中,Struts2、Spring与Hibernate作为经典的“SSH”组合(Struts-Spring-Hibernate),在Java Web开发领域占据着重要的地位。本文旨在通过一个简单的登录示例项目,详细介绍如何在Netbeans IDE环境下构建基于Struts...

    springMVC4+Hibernate4整合例子

    SpringMVC4与Hibernate4是两个非常重要的Java Web开发框架,它们在企业级应用中广泛使用。SpringMVC作为Spring框架的一部分,负责处理HTTP请求,而Hibernate则是一个强大的对象关系映射(ORM)框架,用于简化数据库...

    Strus2+Spring 4 +Hibernate 所需全部jar包

    2. Spring 4:Spring是一个全面的企业级应用开发框架,它涵盖了依赖注入(DI)、面向切面编程(AOP)、数据访问/集成、Web应用、测试、事务管理等多个方面。Spring4在Spring3的基础上进行了优化,支持Java 8的新特性...

    ZK+spring+hibernate的整合

    4. **配置ZK-Spring**:需要引入ZK-Spring的库,这是一个连接ZK和Spring的桥梁,它提供了Spring的ApplicationContext到ZK Session的绑定,使得ZK组件可以直接使用Spring的Bean。 5. **事务管理**:由于Spring对事务...

    spring+springMVC+Hibernate整合

    在IT行业中,Spring、SpringMVC和Hibernate是三个非常重要的框架,它们分别专注于不同领域的功能。Spring是一个全面的Java企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP)等核心特性;SpringMVC是...

    Spring+Hibernate+MySql的应用实例

    4. **pom.xml**:Maven的项目对象模型,定义了项目的依赖管理,包括Spring、Hibernate和MySQL驱动等。 **运行与测试**:开发者需要确保所有依赖已正确添加,并根据实际环境调整配置文件中的数据库连接信息。运行...

    Struts2+Spring2+hibernate整合开发所需要的基本JAR包

    同时,利用Spring管理Struts2的Action和Hibernate的Session,实现依赖注入,提高代码的可测试性。 以上就是Struts2、Spring2和Hibernate整合开发所需的基本JAR包及其作用。在实际项目中,可能还需要根据具体需求...

    spring mvc + spring + hibernate 全注解整合开发视频教程 09

    【标题】"Spring MVC + Spring + Hibernate 全注解整合开发视频教程 09" 提供了一次深入了解Java企业级应用开发的机会,特别是在使用Spring MVC、Spring和Hibernate这三大核心框架进行全注解配置的场景下。...

    spring +hibernate +maven 的案例

    4. **整合Spring和Hibernate**:在Spring配置中,通过`&lt;bean&gt;`标签实例化SessionFactory,并使用`&lt;tx:annotation-driven&gt;`启用基于注解的事务管理。在业务逻辑类中,通过@Autowired注解注入所需的DAO或Service层组件...

    spring3.0+hibernate3.3+mysql8.0

    在与Spring和Hibernate整合时,需要正确配置MySQL的JDBC驱动(通常为`mysql-connector-java`),以便Spring的JdbcTemplate或Hibernate可以与数据库进行通信。注意,不同版本的MySQL可能需要对应版本的JDBC驱动,确保...

    spring3+hibernate4+maven+junit 多库多数据源实现

    "Spring3+Hibernate4+Maven+JUnit 多库多数据源实现"是一个典型的Java Web项目配置,它涉及了多个核心技术来处理复杂的数据管理需求。下面将详细阐述这些技术以及如何协同工作以实现多库多数据源。 首先,Spring...

    用于理解Spring+SpringMVC+Hibernate开发流程的例子

    Spring、SpringMVC和Hibernate是Java企业级应用开发中的三大核心框架,它们分别负责不同的职责。Spring作为基础框架,提供依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)...

    Spring mvc+hibernate+mysql Demo

    【Spring MVC + Hibernate + MySQL 整合详解】 在IT领域,Spring MVC、Hibernate和MySQL是构建Web应用程序的常用技术栈。Spring MVC作为Spring框架的一部分,提供了强大的MVC(Model-View-Controller)架构,用于...

    spring4+springmvc4+hibernate4 整合DEMO

    首先,Spring4是Spring框架的第四代版本,它提供了更高效、更灵活的依赖注入机制,支持Java配置和注解驱动,大大简化了Java应用的开发。Spring4还引入了对Java 8的支持,以及对WebSocket协议的增强,使得实时通信...

    Spring MVC4+Hibernate4整合

    - **创建DAO层**:Spring MVC和Hibernate整合时,通常会创建一个通用的DAO接口,如`BaseDao`,并为每个数据库实体类创建对应的DAO实现类,如`UserDaoImpl`,利用Hibernate的Session进行数据库操作。 - **事务管理*...

    Spring+SpringMVC+hibernate集成jar包

    Spring、SpringMVC和Hibernate是Java开发中三大核心框架,它们各自负责应用程序的不同层面:Spring作为基础框架,SpringMVC处理Web层逻辑,而Hibernate则专注于数据持久化。本集成包提供了这三大框架所需的全部jar包...

    基于注解的springMVC+hibernate+oracle包含数据库查询

    4. DAO层的设计与实现,利用Hibernate的`Session`和`Transaction`进行数据库操作。 5. Service层的业务逻辑封装,调用DAO层进行数据访问。 6. 单元测试的编写,确保代码质量。 这些知识点是构建企业级Web应用的基础...

    Spring+Struts+Hibernate比较详细的整合配置方案

    Spring、Struts和Hibernate是Java Web开发中三大核心框架,它们各自负责不同的职责:Spring作为依赖注入容器和面向切面编程(AOP)框架,提供应用的结构和事务管理;Struts是MVC(模型-视图-控制器)框架,负责处理...

Global site tag (gtag.js) - Google Analytics