课程名称:《探秘 MySQL 多版本并发控制原理》
章节:第3章 【登高望远】经验总结
3-1 章节介绍
3-2 事务使用经验
课程讲师:普贤
课程内容:这两小节是介绍整个章节内容以及事务使用经验。
主要讲了spring事务传播机制和数据库事务隔离级别的关系。
PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的默认设置。
PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。
PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。
PROPAGATION_REQUIRES_NEW:创建新事务,无论当前存不存在事务,都创建新事务。
PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则按REQUIRED属性执行。
数据库的事务隔离级别与spring的事务传播机制有一定的关系,嵌套事务或事务外多次快照读时与数据库的隔离级别有关。
我的感想:理解spring的事务传播机制和数据库的隔离级别,在面对复杂的事务处理场景时才能游刃有余。