事务回滚问题

问题描述

我有一个hibernate方法:publicvoidmethod(){for(inti=0;i<list1.size;i++){save(obj1);}for(intj=0;j<list2.size;j++){save(obj2);}for(intk=0;k<list3.size;k++){save(obj3);}}就是一个方法保存多个表的对象。但这样做会让有的对象可以保存成功。有的不能保存成功。想用一个事务的方法让方法中任何一个对象保存不成功整个方法回滚,不要让有的对象可以保存。有的不能保存。

解决方案

解决方案二:
如果你的循环没什么问题的话,直接开Session的事务就行了。publicvoidmethod(){//首先得到session,开启事务Transactiontr=session.getTransaction();tr.begin();for(inti=0;i<list1.size;i++){save(obj1);}for(intj=0;j<list2.size;j++){save(obj2);}for(intk=0;k<list3.size;k++){save(obj3);}//结束事务。tr.commit();}
解决方案三:
<beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><propertyname="sessionFactory"><refbean="sessionFactory"/></property></bean><beanid="transactionProxy"lazy-init="true"class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"abstract="true"><propertyname="transactionManager"><refbean="transactionManager"/></property><propertyname="transactionAttributes"><props><propkey="find*">PROPAGATION_REQUIRED,readOnly</prop><propkey="*">PROPAGATION_REQUIRED</prop></props></property></bean>用配置管理

时间: 2024-09-23 03:01:09

事务回滚问题的相关文章

java-银行交易如何实现类似事务回滚

问题描述 银行交易如何实现类似事务回滚 在做的项目中,有一个基金产品的购买交易,里面的大致逻辑是 先判断用户是否基金开户,未开户发交易开基金账户>是否签约***(具体什么省略) 未签约发交易签约>最后一步发交易购买该款基金产品. 但现在的问题是购买失败则一个java类里的前两个交易都给做了现在,想不出什么类似操作数据库的事务回滚机制才控制这段交易,该交易在一个页面完成.望经验丰富的朋友给个思路,谢谢! 解决方案 你可以使用应用层的事务框架,或者自己实现一个简单的:先将操作放入临时的表中,然后一

sql-求助:网络中断时 ASP RollbackTrans事务回滚不完全

问题描述 求助:网络中断时 ASP RollbackTrans事务回滚不完全 当网络中断 没有完全运行所有代码时 member 表会回滚 但是 shenhe表不回滚 SQL数据库 已经出现了 shenhe表有记录 member没有对应的记录 <%conn.BeginTrans call checkPost() psw=lostsql(trim(request.Form(""psw""))) repsw=lostsql(trim(request.Form(&qu

PHP pdo 事务回滚代码实例

PHP pdo 事务回滚代码实例 $this->beginTransaction(); $this->exec('update people set age=2'); //$step1 = mysql教程_error();//你的类里,改成如果执行sql错误,获取错误代码,相应的函数 $this->exec('INSERT INTO course (course,num) VALUES ("数学",100)'); //$step2 = mysql_error(); i

PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)_php技巧

本文实例讲述了PHP入门教程之使用Mysqli操作数据库的方法.分享给大家供大家参考,具体如下: Demo1.php <?php //使用 mysqli 对象操作数据库 //创建 mysqli 对象(资源句柄) $_mysqli = new mysqli(); //连接数据库 1.主机名(ip) 2.账户 3.密码 4.数据库 //mysqli_connect 函数 == $_mysqli -> connect(); $_mysqli -> connect('localhost','ro

spring事务回滚只能配在service层吗。为什么我想在Test中添加事务不能进行回滚呢

问题描述 spring事务回滚只能配在service层吗.为什么我想在Test中添加事务不能进行回滚呢 <tx:advice id="txAdvice2" transaction-manager="txManager"> <tx:attributes> <tx:method name="inserttwo*" propagation="REQUIRED"/> </tx:attribut

spring的事务回滚策略为自定义异常

问题描述 spring的事务回滚策略为自定义异常 我配置的回滚策略如下 BusinessException是个自定义异常,继承了RuntimeException,按道理来说spring应该是捕捉到这个异常类或这个异常类的子类才进行的回滚,但是为什么抛出RuntimeException以后事务还是会回滚? 解决方案 http://shaohan126448.iteye.com/blog/1536879 解决方案二: spring异常与事务回滚Spring异常抛出触发事务回滚策略异常类型 &&

spring 注解事务回滚问题

问题描述 spring 注解事务回滚问题 ,错误异常是数据库表主键不可重复,控制台报了违反了表的约术,但是SPring却不回滚..项目能正常运行.用的是注解. 解决方案 看看这里http://my.oschina.net/xuqiang/blog/97633

插入多条数据回滚-hibernate 手动控制事务回滚失败

问题描述 hibernate 手动控制事务回滚失败 spring配置: 5201005100 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" />

求助...Membership 里面如何事务回滚?

问题描述 例如我在同时创建用户和往另外一张表里增加的内容时候,如果创建用户成功了但往另外一张表里面增加内容时出错了,在这样的情况下,我就需要用到事务回滚.MembershipCreateStatusstatus;MembershipUsernewUser=Membership.CreateUser(tb_UserName.Text,tb_Pwd.Text,FinanceLogic.Common.Instance().StrFilter(tb_Email.Text),FinanceLogic.Co

ThinkPHP实现事务回滚示例代码_php实例

ThinkPHP的事务回滚示例如下: $m=D('YourModel');//或者是M(); $m2=D('YouModel2'); $m->startTrans();//在第一个模型里启用就可以了,或者第二个也行 $result=$m->where('删除条件')->delete(); $result2=m2->where('删除条件')->delete(); if($result && $result2){ $m->commit();//成功则提交