Java事务传播行为

事务

事务属性通过TransactionDefinition接口实现定义,主要有事务隔离级别、事务传播行为、事务超时时间、事务是否只读。

隔离级别

事务隔离级别:用来解决并发事务时出现的问题,其使用TransactionDefinition中的静态变量来指定:
ISOLATION_DEFAULT:默认隔离级别,即使用底层数据库默认的隔离级别;
ISOLATION_READ_UNCOMMITTED:未提交读;
ISOLATION_READ_COMMITTED:提交读,一般情况下我们使用这个;
ISOLATION_REPEATABLE_READ:可重复读;
ISOLATION_SERIALIZABLE:序列化。

事务传播行为

事务传播行为类型说明
PROPAGATION_REQUIRED = 0如果当前没有事务,则新建一个事务; 如果已经存在一个事务,则加入到这个事务中。这是最常见的选择。 (如果被调用端发生异常,那么调用端和被调用端事务都将回滚)
PROPAGATION_SUPPORTS = 1支持当前事务。 如果当前没有事务,则以非事务的方式执行。
PROPAGATION_MANDATORY = 2使用当前的事务。 如果当前没有事务,则抛出异常。
PROPAGATION_REQUIRES_NEW = 3新建自己的事务。如果当前存在事务,则把当前事务挂起。 (必须运行在自己的事务中,直到自己的事务提交或回滚,挂起的事务才恢复执行)
PROPAGATION_NOT_SUPPORTED = 4以非事务的方式执行操作。 如果当前存在事务,则把当前事务挂起。
PROPAGATION_NEVER = 5以非事务的方式执行。 如果当前存在事务,则抛出异常。
PROPAGATION_NESTED = 6如果当前存在事务,则在嵌套事务内执行; 如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。 (如果封装事务存在,并且外层事务抛出异常回滚, 那么内层事务必须回滚,反之,内层事务并不影响外层事务)

Required

在这里插入图片描述

RequiresNew

在这里插入图片描述

Required+Supports

在这里插入图片描述

NotSupported

在这里插入图片描述

Mandatory

在这里插入图片描述

Never

在这里插入图片描述

Nested

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值