谁让事务控制不起作用了
来源:百度文库 编辑:神马文学网 时间:2024/06/05 08:46:24
谁让事务控制不起作用了?
在目前使用的现有框架当中,利用spring的AOP机制来控制事务处理是目前最流行的一种控制事务的方式。
但是我们在某种使用场合的过程中,为什么有时事务处理老是不起作用呢?这里,为您道出原因之一,
首先请看一段话
Spring的事务实现采用基于AOP的拦截器来实现,如果没有在事务配置的时候注明回滚的checked exception,那么只有在发生了unchecked exception的时候,才会进行事务回滚。
有必要先解释一下checked exception与unchecked exception:
先看看EXCEPTION在JDK文档当中的结构
java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException 而Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是特殊的。Exception是作为checked Exception 出现的。所以,除了Error与RuntimeException,其他剩下的异常都是你需要关心的,而这些异常类统称为Checked Exception 有了以上的基础,看看我们框架当中的事务属性
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
此处,我们没有指定任何异常,那么它目前默认处理的就是unchecked exception了,再结合我们自身每个项目的模块,在我们的每个项目当中几乎都定义了自己的异常,这些异常都是继承自Exception,很不幸的是,我们继承的Exception包括自己定义的异常,都是checked exception。
所以,在我们的事务处理机制当中,事务不管用了。
解决办法有2个:
1,在事务属性后面加上需要回滚的checked exception。比如PROPAGATION_REQUIRED,-XXXXException (注意那个"-",对应的是"+")
2, 不改配置文件,将需要事务回滚的异常继承自unchecked exception类,也就是RuntimeException。
在目前使用的现有框架当中,利用spring的AOP机制来控制事务处理是目前最流行的一种控制事务的方式。
但是我们在某种使用场合的过程中,为什么有时事务处理老是不起作用呢?这里,为您道出原因之一,
首先请看一段话
Spring的事务实现采用基于AOP的拦截器来实现,如果没有在事务配置的时候注明回滚的checked exception,那么只有在发生了unchecked exception的时候,才会进行事务回滚。
有必要先解释一下checked exception与unchecked exception:
先看看EXCEPTION在JDK文档当中的结构
java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException 而Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是特殊的。Exception是作为checked Exception 出现的。所以,除了Error与RuntimeException,其他剩下的异常都是你需要关心的,而这些异常类统称为Checked Exception 有了以上的基础,看看我们框架当中的事务属性
此处,我们没有指定任何异常,那么它目前默认处理的就是unchecked exception了,再结合我们自身每个项目的模块,在我们的每个项目当中几乎都定义了自己的异常,这些异常都是继承自Exception,很不幸的是,我们继承的Exception包括自己定义的异常,都是checked exception。
所以,在我们的事务处理机制当中,事务不管用了。
解决办法有2个:
1,在事务属性后面加上需要回滚的checked exception。比如
2, 不改配置文件,将需要事务回滚的异常继承自unchecked exception类,也就是RuntimeException。
谁让事务控制不起作用了
数据库之事务控制
在C#中使用COM+实现事务控制
谁控制了我们的浏览器?
谁控制了我们的浏览器?
在C#中使用COM+实现事务控制 - zgqtxwd的专栏 - CSDN博客
马尧:谁控制了黄海谁就主导了东北亚
全球事务 放弃美国?北京发现了新信念
谁控制了我们的浏览器?-月光博客
让 止损 转为 控制时间
控制情绪 别浪费了~
控制情绪,别浪费了~ -
什么是事务?
事务公文
会计事务
公司法律事务
日本知名学者:谁控制了黄海谁就主导了东北亚
农民之苦:谁掌控了粮食,谁就控制了世界
iRealSMS 2.0.8.3 快速回复不起作用?
黄豆粉 让我控制血糖
黄豆粉让我控制血糖a
别让孩子的眼泪控制自己
让普通文件夹变成控制面板
让节拍控制你的身体