关于spring事物传播级别,今天遇到了一个奇怪问题!

问题描述

背景:被事物管理的seriveA.a()方法调用被事物管理的seriveB.b(),b方法抛出回滚异常。a、b方法的propagation都为REQUIRED情况1:seriveB.b()方法是在seriveA.a()的最后一行调用,a方法的update操作没有回滚。a(){//dosomethingb();}情况2:seriveB.b()方法是在seriveA.a()的中间调用,a方法的update操作并回滚。a(){//dosomethingb();//dosomething}这是什么情况?

解决方案

解决方案二:
这么神奇...没见过这样移动下位置就不一样结果的...

时间: 2024-12-21 11:40:22

关于spring事物传播级别,今天遇到了一个奇怪问题!的相关文章

浅析spring事务传播级别

spring是一个开源的框架,Spring为简化企业级应用开发而生,使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能.今天我们先避开spring核心IOC&AOP,浅谈一下spring的事务传播级别. 误区 spring由于事务是是通过service一层控制的,因此为了保证事务的安全和可控性,尽量不要将两个事务要求的方法进行相互调用. 想想看,spring身为一个伟大的,灵活的框架.它怎么可能在事务这么重要的功能上给我们挖坑呢 在最开始使用spring进行事务开发管理

spring事物的七种事物传播属性行为及五种隔离级别

首先,说说什么事务(Transaction). 事务,就是一组操作数据库的动作集合.事务是现代数据库理论中的核心概念之一.如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个事务.当所有的步骤像一个操作一样被完整地执行,我们称该事务被提交.由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚到最初的系统状态. 其中spring七个事物传播属性: PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择. PR

事物隔离级别和行日志格式设置不当导致故障案例

最近刚接手个新项目的测试平台采用了spring的事务机制,在用户认证登录时总是提示认证超时,于时查看相应的各应用服务器日志,发现报了异常: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'... ...... 前端某台应用服务器报如下错: {"returnNo":0,"listFie

面试-spring事务传播属性有哪几种

问题描述 spring事务传播属性有哪几种 今天面试遇到的问题,spring事务传播属性有哪几种?常用的有哪些 解决方案 spring事务传播属性与隔离级别spring事务传播属性与隔离级别Spring 事务传播属性 解决方案二: 1.propagation_required spring默认的事务方式,如果当前存在事务,沿用当前事务,不存在事务,开启一个事务2.propagation_suports 以当前事务方式运行,当前没事务,不开启新的事务3.propagation_mandatory

Spring事务传播特性的浅析——事务方法嵌套调用的迷茫

  Spring事务传播机制回顾     Spring事务一个被讹传很广说法是:一个事务方法不应该调用另一个事务方法,否则将产生两个事务.结果造成开发人员在设计事务方法时束手束脚,生怕一不小心就踩到地雷. 其实这是不认识Spring事务传播机制而造成的误解,Spring对事务控制的支持统一在TransactionDefinition类中描述,该类有以下几个重要的接口方法:  int getPropagationBehavior():事务的传播行为 int getIsolationLevel():

Spring事物是不是对于HQL无效?

问题描述 我的Spring事物定义到impl然后里面调用了两个dao方法第一个方法是使用hql删除信息第二个方法是使用save方法保存信息两个方法间调用了一个判断,现在判断那爆空指针异常,本来该全部回滚,但是删除却已经执行了,这是什么情况啊? 问题补充:<bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"p:sess

spring 事物-spring+mybatis事物配置的问题

问题描述 spring+mybatis事物配置的问题 昨天遇到一个有关事物方面的问题,请大家帮忙看看,问题出在了什么地方,谢谢! 具体问题描述:根据B表同步A表的数据,结果service方法返回后B表的数据已处理标志没有更新,程序在第二次同步数据时B表的数据才能更新.具体情况见下面代码的注释. 事物配置文件: tx:attributes rollback-for="java.lang.Exception" /> propagation="REQUIRED" r

spring 事物管理问题请教,多谢~

问题描述 spring 事物管理问题请教,多谢~注册同时插入两张表,member(mid,mail),company(cid,companyname)代码帖出来,多谢指点~~config.xml<bean id="companyService" class="com.cms.service.impl.CompanyServiceImpl"><property name="companyDAO"><ref local=

spring MVC接收请求体总是多一个等号

spring MVC接收请求体总是多一个等号 比如我发送的请求体是字符串aaa spring MVC 接收到的是aaa= 接口如下: /*** * @param requestInfoBean * @return */ @RequestMapping(value = "/ajax", produces = SystemHWUtil.RESPONSE_CONTENTTYPE_JSON_UTF) @ResponseBody public String ajax(@RequestBody S