Spring事务的传播行为和隔离级别
个传播行为,4个隔离级别,
Spring事务的传播行为和隔离级别
[transaction behavior and isolated level]
事务的传播行为和隔离级别
[transaction behavior and isolated level]
Spring中事务的定义:
一、Propagation :
key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:
PROPAGATION_REQUIRED
--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS
--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY
--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW
--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED
--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER
--以非事务方式执行,如果当前存在事务,则抛出异常。
很多人看到事务的传播行为属性都不甚了解,我昨晚看了j2ee without ejb的时候,看到这里也不了解,甚至重新翻起数据库系统的教材书,但是也没有找到对这个的分析。今天搜索,找到一篇极好的分析文章,虽然这篇文章是重点分析PROPAGATION_REQUIRED 和 PROPAGATION_REQUIRED_NESTED的
?enum Propagation: