索引:

目录索引

参看代码 GitHub:

1.Spring 事务

2.事务行为

一、Spring 事务:

Spring 的事务机制是用统一的机制来处理不同数据访问技术的事务处理。
Spring 的事务机制提供了一个 PlatformTransactionManager 接口,不同的数据访问技术的事务使用不同的接口实现:
JDBC -- DataSourceTransactionManager
JPA -- JpaTransactionManager
Hibernate -- HibernateTransactionManager
JDO -- JdoTransactionManager
分布式事务 -- JtaTransactionManager

二、事务行为

@Transactional 的属性可以定制事务的行为:
.propagation--定义事务的生命周期
默认值--Propagation.REQUIRED
Propagation.REQUIRED--方法A调用时没有事务新建一个事务,
当方法A调用另外一个方法B时,方法B将使用相同的事务,
如果此时方法B发生异常数据回滚的时候,整个事务将回滚。
Propagation.REQUIRES_NEW--对于方法A和B,
在方法调用的时候无论是否有事务存在都开启一个新的事务,
如果方法B有异常不会导致A方法的回滚。
Propagation.NESTED--与Propagation.REQUIRES_NEW相同,
支持JDBC,不支持JPA和Hibernate。
Propagation.SUPPORTS--方法调用时,有事务就用事务,没有就不用。
Propagation.NOT_SUPPORTED--强制方法不在事务中执行,
若有事务,在方法调用时,事务会先被挂起。
Propagation.NEVER--强制方法不在事务中执行,若有事务则抛出异常。
Propagation.MANDATORY--强制方法在事务中执行,若无事务则抛出异常。
.isolation--隔离决定事务的完整性,可以设置多事务对相同数据下的处理机制
默认值--Isolation.DEFAULT
Isolation.READ_UNCOMMITTED--对于在A事务里修改了一条记录但没有提交事务,
在B事务可以读取到修改后的记录,
可能导致脏读、不可重复读、以及幻读。
Isolation.READ_COMMITTED--只有当在A事务里修改了一条记录且提交事务之后,
B事务才可以读取到提交后的记录,
阻止脏读,但可能导致不可重复读和幻读。
Isolation.REPEATABLE_READ--具有Isolation.READ_COMMITTED的功能,
并且当A事务读取一条记录时,B事务将不能修改这条记录了,
阻止脏读、不可重复读,但可能导致幻读。
Isolation.SERIALIZABLE--此级别下事务是顺序执行的,可阻止脏读、不可重复读、幻读,但开销较大。
Isolation.DEFAULT--使用当前数据库的默认隔离级别,
Oracle--READ_COMMITTED
SqlServer--READ_COMMITTED
MySQL--REPEATABLE_READ
.timeout--事务过期时间,默认当前数据库事务的过期时间
.readOnly--指定当前事务是否是只读事务,默认 false
.rollbackFor--指定哪些异常引起事务回滚,
源码-- Class<? extends Throwable>[] rollbackFor() default {};
.noRollbackFor--指定哪些异常不引起事务回滚,
源码-- Class<? extends Throwable>[] noRollbackFor() default {};

                                         蒙

                                    2018-05-03 16:29 周四

                                    2018-05-11 22:41 周五

最新文章

  1. 个人对B/S项目的一些理解(一)
  2. Android使用AudioTrack发送红外信号
  3. HTML中strong与b,em与i标签的区别
  4. 【原】http缓存与cdn相关技术
  5. 建立开发板与PC机之间的nfs服务器
  6. 伯克利包过滤(Berkeley Packet Filter,BPF)语言
  7. 八、java集合类
  8. JBPM的引擎内核学习
  9. python 数据运算
  10. top命令的解释
  11. .NET Framework 4.0-RequestValidationMode
  12. 中文/英文双语言版本TWRP for Nexus5 -hammerheadcaf
  13. SpringMVC入门第二天
  14. C# WebSocket
  15. spring-data-mongo的MongoTemplate开发
  16. SAP传输请求自动发布
  17. (function(){…})(); 与 (function(){…}());
  18. MFC TabCtrl 控件修改标签尺寸
  19. 国内最火5款Java微服务开源项目
  20. Sql Server 中 根据列名查询表名

热门文章

  1. [Swift]LeetCode899. 有序队列 | Orderly Queue
  2. TCP/IP 详解常用术语
  3. markdown反射型xss漏洞复现
  4. 【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
  5. Java异常处理:给程序罩一层保险
  6. 用abp vNext快速开发Quartz.NET定时任务管理界面
  7. Zabbix系列之八——安装agent监控windows
  8. Redis学习——Windows环境下Redis的安装(二)
  9. 为VIP解决问题时写的源码
  10. linux 制作不用密碼可立即登入的 ssh 用戶