Spring事务的传播行为,每个传播行为的区别 ;Spring 事务的隔离性,每个隔离性的区别
来源:互联网 发布:java四种访问修饰符 编辑:程序博客网 时间:2024/05/29 18:06
1、 Propagation
key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
2、 Isolation Level(事务隔离等级):
1、Serializable:最严格的级别,事务串行执行,资源消耗最大;
2、REPEATABLE READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。
3、READ COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。
4、Read Uncommitted:保证了读取过程中不会读取到非法数据。
隔离级别在于处理多事务的并发问题。我们知道并行可以提高数据库的吞吐量和效率,但是并不是所有的并发事务都可以并发运行,这需要查看数据库教材的可串行化条件判断了。
key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
2、 Isolation Level(事务隔离等级):
1、Serializable:最严格的级别,事务串行执行,资源消耗最大;
2、REPEATABLE READ:保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但是带来了更多的性能损失。
3、READ COMMITTED:大多数主流数据库的默认事务等级,保证了一个事务不会读到另一个并行事务已修改但未提交的数据,避免了“脏读取”。该级别适用于大多数系统。
4、Read Uncommitted:保证了读取过程中不会读取到非法数据。
隔离级别在于处理多事务的并发问题。我们知道并行可以提高数据库的吞吐量和效率,但是并不是所有的并发事务都可以并发运行,这需要查看数据库教材的可串行化条件判断了。
0 0
- Spring事务的传播行为,每个传播行为的区别 ;Spring 事务的隔离性,每个隔离性的区别
- spring的事务传播行为及事务隔离级别
- spring的事务的传播行为和隔离级别
- Spring 事务的隔离级别和传播行为的理解
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- spring事务的传播行为与隔离级别
- spring事务的传播行为与隔离级别
- spring的事务传播行为和隔离级别
- 浅析Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- Spring事务的传播行为和隔离级别
- spring的事务传播行为和隔离级别
- 【10天轻松掌握C语言】2、C语言必备基础知识
- thinkphp 中的伪静态问题,不同环境下的伪静态写法
- MongoDB学习(六)数据库的备份、还原、导入及导出
- <jsp:include>和<%@include%>的区别
- 线性单链表 初始化 插入 取出 头插法 合并升序排列
- Spring事务的传播行为,每个传播行为的区别 ;Spring 事务的隔离性,每个隔离性的区别
- 为什么java Hashmap 中的加载因子是默认为0.75
- 本文将介绍如何搭建服务器
- 数据库连接:操作数据增删改查
- VS2013中添加继承自Qt的类时提示没有moc_xxx.cpp
- Wordpress函数大全
- 利用反射操作泛型
- Java.lang.reflect简单讲解
- ortp定时器源码分析