0 0

Hibernate4+spring3.2整合事物问题0

首先描述下环境,使用spring3.2MVC+hibernate 4.2.1

问题:事务不提交,session不关闭
测试过程:
1、使用openSession(),手动开启事物,关闭事物没问题
2、使用getCurrentSession(),单元测试没问题,集成之后事务回滚
声明:代码逻辑没有错误。

单元测试父类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring/spring-*.xml" })
@TransactionConfiguration(transactionManager="transactionManager",defaultRollback = false)//true:始终回滚 false:数据提交
@Transactional
public class SpringTest {

}

web.xml的OpenSessionInViewFilter
<filter> 
		<filter-name>lazyLoadingFilter</filter-name>  
		<filter-class> org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class> 
		<!-- singleSession默认为true,若设为false则等于没用OpenSessionInView -->
		<init-param>  
			<param-name>singleSession</param-name>  
			<param-value>true</param-value>  
		</init-param>
		<init-param>  
			<param-name>sessionFactoryBeanName</param-name>  
			<param-value>sessionFactory</param-value>  
		</init-param>   
		<init-param>  
			<param-name>flushMode</param-name>  
			<param-value>AUTO</param-value>  
		</init-param>  
	</filter>  
	
	<filter-mapping>  
		<filter-name>lazyLoadingFilter</filter-name>  
		<url-pattern>/*</url-pattern>  
	</filter-mapping>


事物配置
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />     
		<property name="packagesToScan">
			<list>  
				<value>com.ld.car.*.entity</value>  
			</list> 
		</property>  
		<property name="hibernateProperties">         
			<props>          
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>          
				<prop key="hibernate.show_sql">false</prop>  
			</props>     
		</property> 
	</bean>

	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
		<property name="dataSource" ref="dataSource"></property>  
	</bean>
	
	<!-- 配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
		<property name="sessionFactory" ref="sessionFactory"/>  
	</bean> 

	<tx:advice id="txAdvice" transaction-manager="transactionManager">  
		<tx:attributes>  
			<!-- 方法对应的传播属性 -->  
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="remove*" propagation="REQUIRED" />
			<tx:method name="load*" propagation="REQUIRED"/>
			<tx:method name="query*" propagation="REQUIRED"/>
			<tx:method name="del*" propagation="REQUIRED" />
			<tx:method name="get*" propagation="REQUIRED" />
			<tx:method name="count*" propagation="REQUIRED"/>
			<tx:method name="find*" propagation="REQUIRED" />
			<tx:method name="list*" propagation="REQUIRED"/>
			<!--<tx:method name="*" propagation="REQUIRED" />-->
		</tx:attributes>  
	</tx:advice>
	
	<!-- 事务控制位置,一般在业务层service -->
	<aop:config>  
		<aop:pointcut id="txPointcut" expression="execution(* *..service.impl.*.*(..)))" />  
		<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
	</aop:config>
	
	<!--在*ServiceImpl里写@Transactional就可以启用事物管理 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>



2014年12月12日 18:06

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

0 0

可以看看这个demo
http://www.itjavaer.com/article/22
我估计是你的execution有问题aop没有切到

2014年12月17日 14:13

相关推荐

    struts2+spring2.5+hibernate3.2整合完整项目,带数据库脚本

    Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...

    Jersey2.1+mysql+Hibernate4.3+Spring3.2

    【标题】"Jersey2.1+mysql+Hibernate4.3+Spring3.2" 描述了一个集成开发环境,该环境结合了四个关键的技术组件,用于构建基于RESTful Web服务的Java应用程序。让我们深入探讨每个组件及其在项目中的作用。 **Jersey...

    Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3 开发示例

    Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3开发示例代码。 其中包括如下文件: 介绍文档 Struts2.3 + Spring3.2 + Hibernate4.1 + HTML5 + CSS3开发示例.docx Eclipse工程文件 SSH2.zip Zip包是Eclipse...

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...

    Hibernate4.2+Spring3.2+SpringMVC+shiro1.2.2+Maven

    Hibernate4.2+Spring3.2+SpringMVC+shiro1.2.2+Maven整合和简单的登陆,导入工程后见description,内容简单基础,想做成脚手架供自己以后使用,望高手勿喷有什么宝贵意见望留言,谢谢

    struts2.3+hibernate4.1+spring3.2+EasyUI1.36整合实现的java后台管理系统

    Struts2.3、Hibernate4.1、Spring3.2和EasyUI1.36是构建Java后台管理系统的四个核心组件,它们各自扮演着重要的角色,共同为开发人员提供了一个高效、灵活且功能丰富的框架。 Struts2是基于MVC(Model-View-...

    struts2+spring2.5+Hibernate3.2整合示例

    Struts2、Spring和Hibernate是Java Web开发中的三...以上就是关于“Struts2+Spring2.5+Hibernate3.2整合示例”的主要知识点,这个整合实例涵盖了Java Web开发中的重要技术,对于开发者来说,深入学习和实践将非常有益。

    hibernate4.2+spring3.2+struts2

    【标题】:“Hibernate4.2+Spring3.2+Struts2”是一个经典的Java企业级应用开发组合,常被称为“SSH”(Struts、Spring、Hibernate)框架集成。这三个框架协同工作,为开发者提供了一个强大的、灵活的和可扩展的平台...

    Struts2+Hibernate3.2+Spring2.0整合续二

    Struts2+Hibernate3.2+Spring2.0整合续二,花心思找的,希望对大家有帮助,欢迎下载

    struts2+hibernate3.2+spring2.5整合示例

    做了一个ssh2的整合示例,删除了示例中的jar包,资源太大传不上,该示例采用的目前主流的技术struts2.1+hibernate3.2+spring2.5 的整合开发,示例采用面向接口的设计开发模式,使用spring来管理hibernate的事务,...

    Struts2.3.16.1+Hibernate3.6.10+Spring3.2.8整合

    Struts2.3.16.1+Hibernate3.6.10+Spring3.2.8整合 能够运行,没有任何问题 另外附带applicationContext.xml、struts.xml、hibernate.cfg.xml

    Struts2.1.18+Hibernate3.2+Spring3.0+MySQL整合

    Struts2.1.18+Hibernate3.2+Spring3.0+MySQL整合 开发环境: Windows XP SP3 MyEclipse Enterprise Workbench Version: 8.5 Tomcat 6.0.18 JDK 6.0.20 MySQL 5.1

    struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版

    struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版 struts2 的方式自己去看简单。 spring2.5 是用注释来注入 hibernate3.2 是用ejb3注解映射关系 hibernate3 +个属性可以自动...

    struts22.3.4.1+hibernate4.1.6+spring3.1.2整合jar包

    4. 集成Hibernate:配置Hibernate的实体类、映射文件,以及Spring的数据源和SessionFactory。 5. 测试:编写测试用例,验证SSH集成是否正常工作。 在实际开发中,SSH的整合可以提高开发效率,减少代码重复,使得...

    Spring2.5.3+Hibernate3.2+Struts2.0.11整合.

    这个整合项目中的文档,如"Spring2.5+Hibernate3.2+Struts2.0+jotm2.0集成配置.doc"、"spring 2.0 + hibernate3.2 + struts 2.0 开放配置.pdf"和"Spring2.5.3+Hibernate3.2+Struts2.0.11整合.pdf"应该详细介绍了这些...

    struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 02部分

    struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 01部分 struts2.1.6 +spring2.5 +hibernate3.2 整合开发的 jar包 _ 02部分 大家只要将这两个部分的包全部下载下来,就可以搭建struts2 + spring + ...

    S2SH: Struts2.3+hibernate4+spring3.2整合实例

    该项目用的是struts-2.3.15,hibernate-release-4.2.3.Final,spring-framework-3.2.3 来进行整合的!希望对大家有帮助,特别是刚接触hibernate4的~带有sql文件,方便创建例子用到的数据库。

    Struts2+spring2.0+hibernate3.2

    Struts2+spring2.0+hibernate3.2整合带全部jar包 Struts2+spring2.0+hibernate3.2整合带全部jar包 Struts2+spring2.0+hibernate3.2整合带全部jar包

Global site tag (gtag.js) - Google Analytics