spring的事务回滚
@Transactional(rollbackFor = { Exception.class })
需要把异常抛出到带有@Transactional(rollbackFor = { Exception.class }) 这个注释的函数外面,回滚才能生效。
出现错误:
org.springframework.orm.hibernate3.HibernateSystemException: identifier of an instance of com.cqut.entity.outintask.OutInTask was altered from 20141017221406126 to 20141017221406167;
原因在于:实体呗保存在spring的缓存中,没有进行保存,只有在函数执行完成后才会把实体保存进入数据库中。
所以在当实体还有没有进入数据库中的时候,就对实体的ID进行变化就相当于改变数据库记录的ID,但是数据库记录ID是不能进行修改的,所以就出现错误。,不能对一个已经保存进入数据库中的实体进行修改,这样会修改缓存。
spring的事务回滚的更多相关文章
- Spring @Transactional ——事务回滚
工作原理运行配置@Transactional注解的测试类的时候,具体会发生如下步骤1)事务开始时,通过AOP机制,生成一个代理connection对象,并将其放入DataSource实例的某个与Dat ...
- spring管理事务回滚
spring 事务回滚 1.遇到的问题 当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误.伪代码如下: ? 1 2 3 4 5 6 7 public method() { ...
- spring @Transaction事务回滚失败
今天客户提出一个新问题,出库一批商品,提示失败了,但是库存数量却减少了.看了一下代码一头雾水,我们的代码加了事物,且捕获异常. 经过调试代码发现就是两个原因导致的 第一.在当前方法的catch中处理了 ...
- spring事务回滚问题
刚刚接到一个上家公司同事的一个电话,问我为什么service方法事务不会滚了,日志打印了,调用webservice报错. 我让他把这个调用执行webservice的方法截图发给我,如下: publ ...
- ssh事务回滚,纪念这几个月困扰已久的心酸
以前的事务采用的是JTA,xml注入的方式.本人就着开发要优雅合理利用轮子的态度,一直不满意JTA式的申明和切入方式. spring的注解方式多优雅,可是万恶的直到项目快要上线时终于找到了注解式不能回 ...
- Spring异常抛出触发事务回滚
Spring.EJB的声明式事务默认情况下都是在抛出unchecked exception后才会触发事务的回滚 /** * 如果在spring事务配置中不为切入点(如这里的切入点可以定义成test*) ...
- (转)spring异常抛出触发事务回滚策略
背景:在面试时候问到事务方法在调用过程中出现异常,是否会传递的问题,平时接触的比较少,有些懵逼. spring异常抛出触发事务回滚策略 Spring.EJB的声明式事务默认情况下都是在抛出unchec ...
- Spring事务回滚和异常类
1.异常的一些基本知识 异常的架构 异常的继承结构:Throwable为基类,Error和Exception继承Throwable.Error和RuntimeException及其子类成为未检查异常( ...
- 浅谈Spring中的事务回滚
使用Spring管理事务过程中,碰到过一些坑,因此也稍微总结一下,方便后续查阅. 1.代码中事务控制的3种方式 编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚.优点就是可以灵活控 ...
随机推荐
- 默认的app.js
我们通过npm start 默认入口是app.js,如果想默认入口改为main.js,可以修改项目下的/bin/www文件把app修改main var app = require('../app');
- 动态页面的登陆——装饰器应用<代码>
log_status = False f = open("info", "r", encoding="utf8") source = f.r ...
- Android笔记: Android版本号
由于有2套版本号 总是对应不准 记下来做过标记 Android 4.3 ----18 Android 4.2---17 Android 4.1---16 Android 4.0.3---15Andro ...
- SQLServer Note
1. Grant necessory permission to user account, so it can use SQL profiler. USE masterGRANT ALTER TRA ...
- jq 的连续动画
var direction='right'; (function(){ var css={ 'left':'398px' }; if(direction==='right'){ direction=' ...
- (转)Eclipse New Server 【无法输入server name】
I was trying to add Tomcat 7 in my Eclipse in Ubuntu. When I click “Add new server” in Eclipse and s ...
- 图像分割之(五)活动轮廓模型之Snake模型简介
在"图像分割之(一)概述"中咱们简单了解了目前主流的图像分割方法.下面咱们主要学习下基于能量泛函的分割方法.这里学习下Snake模型简单的知识,Level Set(水平集)模型会在 ...
- Android 在Windows上安装FFmpeg程序
FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库libavcodec. 该程序 ...
- Android各个版本 版本号对应关系表
Platform Version API Level VERSION_CODE Notes Android 5.0 21 LOLLIPOP Platform Highlights Android 4. ...
- thinkphp 最简单的引入百度编辑器的方法
后台肯定是框架了...编辑器放在框架里面... 后台首页比如是这样的... <html> <frameset cols="10%,90%"> <fra ...