0 0

请教:SpringMVC JPA 事务,单元测试通过,控制器不开启事务,如何解决10

我的项目情况如下:
   1、使用Springmvc 3.0.5 Hibernate3.5.6 JPA,配置persistence.xml使用mysql;
   2、使用Dao、Daosupport,Service、ServiceBean,web.xml中,使用OpenEntityManagerInViewFilter;
   3、在使用Junit4做单元测试时,保存数据可以通过,但是控制器中,无法保存数据,错误如下:

--控制器中先执行了一次查询操作,这是操作完成的提示:
DEBUG org.hibernate.loader.Loader:(Loader.java:1966)
- done entity load
DEBUG org.hibernate.jdbc.ConnectionManager:(ConnectionManager.java:427)
- aggressively releasing JDBC connection

--然后执行另一个保存操作:save--service.save--serviceBean.save--dao.save(entity),出现如下提示:
DEBUG org.hibernate.event.def.AbstractSaveEventListener:(AbstractSaveEventListener.java:327)
- delaying identity-insert due to no transaction in progress

--问题就在这里,我对第二个操作,前后loger,发现第一个操作完成后,jdbc链接被关闭,而第二个操作,根本不打开连接和事务,请问大侠们,问题在哪里?

问题补充:谢谢你的关注,我下去试一试,成功马上给分。

问题补充:
你的回答,一语中的,非常感谢。
我按照你的指导,按如下步骤调整了bean生成的配置:
    1、实体和服务层和common层的bean,由ApplicationContext负责扫描;
    2、控制器,分别由前台、后台的servlet负责扫描;
测试成功!
感谢之情,无以言表。
2011年4月25日 08:50

1个答案 按时间排序 按投票排序

0 0

采纳的答案

看不到你的配置文件,不知道是否和我以前遇到的问题类似:

在主容器中(applicationContext.xml),将Controller的注解排除掉
<context:component-scan base-package="com">
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

而在springMVC配置文件中将Service注解给去掉
<context:component-scan base-package="com">
  <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
  </context:component-scan>

因为spring的context是父子容器,所以会产生冲突,Controller会先进行扫描装配,而此时的Service还没有进行事务的增强处理,得到的将是原样的Service(没有经过事务加强处理,故而没有事务处理能力) ,最后才是applicationContext.xml中的扫描配置进行事务处理。

2011年4月25日 10:54

相关推荐

    Spring SpringMVC Jpa整合Demo

    在这些文件中,开发者会定义Spring的bean配置、SpringMVC的控制器、JPA的实体类和Repository接口等。 在实际开发中,这个Demo可能会展示如何配置Spring的ApplicationContext,定义Bean并进行依赖注入;如何设置...

    springMvc data jpa example

    这里可能包含数据源配置、JPA 配置(如实体管理工厂、事务管理器等)以及 Spring MVC 的视图解析器、处理器映射器和适配器等。 2. **实体类(Entity)**:这些是与数据库表对应的 Java 类,通常包含 JPA 注解,如 `...

    springmvc+jpa 例子

    Spring MVC 是 Spring 框架的核心组件之一,它提供了模型-视图-控制器(MVC)架构模式的实现,使得开发者可以将业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可测试性。Spring MVC 的主要组成部分包括...

    手动创建 SpringMvc +SpringDataJpa+Hibernate+ freemarker mavenProject+ 环境切换 webDemo

    在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...

    SpringMVC4+JPA Demo

    **SpringMVC 4 + JPA 整合详解** 在现代Java Web开发中,SpringMVC作为主流的MVC框架,常与Java Persistence API (JPA) 集成,用于处理数据持久化。本Demo将详细介绍如何在SpringMVC 4项目中整合JPA,实现高效的...

    maven构建项目,整合springmvc jpa

    在IT行业中,构建Java应用程序时,我们经常使用Maven作为项目管理工具,SpringMVC作为Web层框架,而JPA(Java Persistence API)则作为持久层解决方案。这三者结合可以构建出高效、可维护的现代企业级应用。现在,让...

    SpringMVC+JPA+Freeemarker

    SpringMVC通过DispatcherServlet处理HTTP请求,通过拦截器、控制器、模型、视图和数据绑定等机制协同工作,提供灵活的Web开发解决方案。 **JPA(Java Persistence API)** JPA是Java EE的一部分,用于管理关系...

    SpringMvc单元测试Junit

    SpringMvc单元测试Junit是Java开发中的重要实践,主要用于确保应用程序的特定部分,如控制器,服务或DAO,按预期工作。在这个Demo中,我们将深入探讨SpringMvc如何与JUnit结合进行有效的单元测试,以及如何利用这些...

    spring3+springmvc+jpa+hibernate多数据源

    "spring3+springmvc+jpa+hibernate多数据源"是一个示例项目,它演示了如何在一个应用中集成Spring 3、Spring MVC、JPA 2.0以及Hibernate,以实现对多个数据源的支持。下面将详细介绍这些技术及其集成的关键点。 **...

    Study:SpringMVC整合Mybatis的完整例子

    - SpringMVC可以通过AOP(面向切面编程)来管理事务,配置事务管理器,如`PlatformTransactionManager`,并指定对应的事务传播行为。 5. **测试与运行** - 创建单元测试或集成测试,验证SpringMVC和Mybatis的整合...

    spring3+springmvc+jpa+hibernate

    Spring3、SpringMVC、JPA(Java Persistence API)和Hibernate是Java开发中常见的四大框架,它们在企业级应用开发中扮演着至关重要的角色。这个项目集成了这些框架,为开发者提供了一个快速搭建Web应用程序的基础...

    将_Shiro_作为应用的权限基础_五:SpringMVC+Apache_Shiro+JPA(hibernate)整合配置

    ### 将Shiro作为应用的权限基础...综上所述,通过这些核心配置文件的详细解析,我们可以清晰地了解到如何将Apache Shiro与SpringMVC及JPA(hibernate)进行有效集成,为Web应用程序提供强大的权限管理和安全控制功能。

    spring+springMVC+jpa+hibernate框架整合

    在IT领域,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+jpa+hibernate框架整合"就是一个常见的解决方案。这个整合涉及到四个关键的技术栈:Spring框架、SpringMVC、JPA(Java Persistence API)...

    SpringMVC+JPA 注解开发 maven

    SpringMVC和JPA是Java开发中常用的两个框架,它们分别负责Web应用的控制器层和持久化层。在本项目中,我们结合了这两个框架,采用注解驱动的方式进行开发,这大大简化了代码,提高了开发效率。Maven作为项目构建工具...

    springmvc+jpa(hibernate实现)+spring整合实例

    工作用了springmvc+jpa+spring这么长时间,这段时间正好有点时间就想整合一下,但在整合过程中遇到了各种问题,上网查了很多资料但讲的都很模糊或者是没有注释,在我一步一步的试验中终于整合成功了,做为我自已以后...

    SpringMVC+Spring+Spring Data JPA+Maven

    技术架构:SpringMVC3+Spring3.1.2+Spring Data JPA+Maven 声明:该应用仅仅是技术研究:Spring Data JPA的配置和常见api的使用&maven构建项目,其他技术不在此研究 内涵sql和各种Spring Data JPA测试和案例,导入&...

    SpringMVC3.2+JPA使用注解的方式环境搭建

    同时,还需要配置JPA的持久化单元,定义数据源、事务管理器等,确保JPA能够正确地与数据库进行交互。 #### 四、总结 SpringMVC与JPA的结合使用,使得Web应用程序的开发变得更加简洁高效。通过注解的方式,我们可以...

    springMVC教案.rar

    SpringMVC提供了MockMvc工具,允许在不依赖Web服务器的情况下进行单元测试和集成测试。 这份教案将涵盖以上各个知识点,并可能包括实践案例和代码示例,帮助初学者理解SpringMVC的工作原理,掌握如何构建和调试...

    spring+springmvc+jpa零配置注解开发

    总的来说,“spring+springmvc+jpa零配置注解开发”意味着使用Spring框架、Spring MVC以及JPA,通过注解来替代XML配置,实现高效且简洁的Java Web应用开发。这样的开发方式提高了代码的可读性和可维护性,同时也降低...

    spring+springmvc+hibernate+jpa搭建

    12. **运行和测试**:启动服务器,访问Web应用,通过单元测试或手动测试验证各个功能是否正常工作。 在实际开发中,这个过程可能还需要结合其他工具,如Tomcat服务器、数据库管理系统等。理解这些技术的工作原理和...

Global site tag (gtag.js) - Google Analytics