用Spring管理iBatis事务的问题

问题描述

我想在业务层实现事务的管理,结果发现当业务层里面的对应方法在执行过程中出现异常的时候事务并没有回滚,这个问题困扰了我一天多了,请大侠们不吝赐教(spring2.0/ibatis2.0)!以下是相关配置文件这是web-content.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><description>NFAPolicyPortalServices</description><!--iBatis的配置--><beanid="sqlMapClient"class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"><propertyname="configLocation"value="/WEB-INF/spring/ibatis/sql-map-config.xml"></property><propertyname="dataSource"ref="dataSource"/><propertyname="lobHandler"ref="oracleLobHandler"/></bean><!--事务管理的定义--><beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"/></bean><!--LobHandlerforOracleJDBCdrivers--><beanid="nativeJdbcExtractor"class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"lazy-init="true"/><beanid="oracleLobHandler"class="org.springframework.jdbc.support.lob.OracleLobHandler"lazy-init="true"><propertyname="nativeJdbcExtractor"ref="nativeJdbcExtractor"/></bean><beanid="baseTransactionProxy"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"abstract="true"><propertyname="transactionManager"ref="transactionManager"></property><propertyname="transactionAttributes"><props><propkey="insert*">PROPAGATION_REQUIRED</prop><propkey="update*">PROPAGATION_REQUIRED</prop><propkey="delete*">PROPAGATION_REQUIRED</prop><propkey="*">PROPAGATION_REQUIRED,readOnly</prop></props></property></bean><beanid="nfaGroupTransaction"parent="baseTransactionProxy"><propertyname="target"><refbean="nfaGroupImpl"/></property></bean><!--实现类的定义--><beanid="nfaGroupImpl"class="com.zznode.e2evas.nfa.main.policy.impl.NfaGroupImpl"><constructor-argindex="0"ref="nfaGroupDao"/><constructor-argindex="1"ref="nfaGroupToUCImpl"/></bean><!--DAO的定义--><beanid="nfaGroupDao"class="com.zznode.e2evas.nfa.main.policy.persistence.sqlmapdao.NfaGroupSqlMapDao"><propertyname="sqlMapClient"ref="sqlMapClient"></property></bean><!--<beanid="nfaGroupMemberDao"class="com.zznode.e2evas.nfa.main.policy.persistence.sqlmapdao.NfaGroupMemberSqlMapDao"><propertyname="sqlMapClient"ref="SqlMapClient"></property></bean><beanid="nfaGroupMemberImpl"class="com.zznode.e2evas.nfa.main.policy.impl.NfaGroupMemberImpl"><propertyname="nfaGroupMemberDao"ref="nfaGroupMemberDao"></property></bean>--><!--下发服务--><beanid="nfaGroupToUCImpl"class="com.zznode.e2evas.nfa.main.policy.uc.impl.NfaGroupToUCImpl"></bean><beanid="nfaGroupMemberToUCImpl"class="com.zznode.e2evas.nfa.main.policy.uc.impl.NfaGroupMemberToUCImpl"></bean><beanid="nfaActionPolicyToUCImpl"class="com.zznode.e2evas.nfa.main.policy.uc.impl.NfaActionPolicyToUCImpl"></bean></beans>以下是sql-map-config.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEsqlMapConfigPUBLIC"-//ibatis.apache.org//DTDSQLMapConfig2.0//EN""http://ibatis.apache.org/dtd/sql-map-config-2.dtd"><sqlMapConfig><!----><settingslazyLoadingEnabled="true"useStatementNamespaces="true"/><sqlMapresource="com/zznode/e2evas/nfa/main/policy/persistence/sqlmapdao/sql/NfaGroup.xml"/><!--<sqlMapresource="com/zznode/e2evas/nfa/main/policy/persistence/sqlmapdao/sql/NfaGroupMember.xml"/>--></sqlMapConfig>

解决方案

解决方案二:
大家们救急啊!
解决方案三:
问题解决了!
解决方案四:
楼主能否分享一下解决方案?
解决方案五:
这样的楼主太让人寒心了

时间: 2024-07-31 01:22:46

用Spring管理iBatis事务的问题的相关文章

spring 3 ibatis 事务不起作用

问题描述 controller层调用service@RequestMapping("/test.html")publicStringtest(ModelMapmap){testService.t();//调用servicereturnTemplateKeys.INDEX;}/////////////serviceDevicedevice=newDevice();device.setDeviceDesc("test");d.saveOrUpdate(device);f

spring事务错误-spring+ibatis 事务错误

问题描述 spring+ibatis 事务错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'studentdao' defined in URL [file:/E:/资料/apache-tomcat-6.0.29/webapps/firstibatis/WEB-INF/classes/spring/applicationContext-jdbc.xml]: Erro

浅析Spring提供的事务管理方法

Spring提供的事务管理可以分为两类:编程式的和声明式的.编程式的,比较灵活,但是代码量大,存在重复的代码比较多:而声明式的比编程式的更灵活方便.本文将讨论这两种事务管理的区别. 传统的JDBC事务管理 以往使用JDBC进行数据操作时,一般采用DataSource,从数据源中得到Connection,我们知道数据源是线程安全的,而连接不是线程安全的,所以对每个请求都是从数据源中重新取出一个连接.一般的数据源由容器进行管理,包括连接池.例如TOMCAT,WEBSPHERE,WEBLOGIC等这些

spring提供的事务管理

spring提供的事务管理可以分为两类:编程式的和声明式的.编程式的,比较灵活,但是代码量大, 存在重复的代码比较多:声明式的比编程式的更灵活.编程式主要使用transactionTemplate.省略了部 分的提交,回滚,一系列的事务对象定义,需注入事务管理对象:声明式:主要使用 TransactionProxyFactoryBean,围绕Poxy的动态代理,能够自动的提交和回滚事务.统观spring事务, 围绕着两个核心PlatformTransactionManager和Transacti

Spring框架的事务管理应用分析

引言 在软件开发中出现过各种各样的框架,开源软件的兴起,使得各种各样的框架纷纷出现,例如,Apache组织下就拥有诸多的框架类产品.框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计.然而,传统的框架使得应用程序组件过分依赖于框架中的类,这种耦合度的提高降低了组件的复用性.Spring框架的出现,使得组件之间更松散的耦合成为了可能. Spring框架简介 Spring框架是一个2003年2月才出现的开源项目,该开源项目起源自Rod Johnson在2002年末出版的<Exper

spring管理hibernate,请问如何保证所有操作是一个事务内完成的?具体如下:

问题描述 spring管理hibernate,请问如何保证所有操作是一个事务内完成的?具体如下: transactionTemplate.execute(new TransactionCallbackWithoutResult(){ protected void doInTransactionWithoutResult(TransactionStatus transactionStatus){ Session session = null; Transaction tx = null; try{

ibatis事务管理问题,小白求知道

问题描述 ibatis事务管理问题,小白求知道 公司项目,分为前端用户客户端,后端平台管理端,分别是两个项目!但是后台连接的是同一个数据库,项目数据模型层使用的是ibatis!我的问题是,两个应用都有自己各自的事务管理.会不会发生幻读的情况!比如说,A读取了一个数据为100,B也读到了为100!然后A把数据减20再提交!B还是认为数据为100的情况继续操作后提交事务就会让数据失真!本人没有ibatis经验希望大虾们指教! 解决方案 http://blog.csdn.net/wanghuan203

spring中配置事务管理的问题

问题描述 spring中配置事务管理的问题 我的Spring配置文件中加上下面的配置,程序启动就报404,是为什么? <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" propagation="REQUIRED" read-only=&q

Spring中的事务管理实例详解_java

本文实例讲述了Spring中的事务管理.分享给大家供大家参考.具体分析如下: 事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作,它们被当作一个单独的工作单元.这些动作要么全部完成,要么全部不起作用 事务的四个关键属性(ACID) ① 原子性(atomicity):事务室一个原子操作,有一系列动作组成.事务的原子性确保动作要么全部完成,要么完全不起作用 ② 一致性(consistency):一旦所有事务动作完成,事务就被提交.数据和资源就