实战回顾
2018年11月28日 有两个客户在两个渠道购买了同一产品每人各买2笔
系统应在29日做成交处理, 成交结束后, 更新一张记录表, 记录表根据产品代码和渠道代码作为Unique...., 而另一个会话因为数据库等待时间过长, 数据也没有进行提交, 最后导致4笔交易全部回滚....隔离性 (可能导致死锁) 简单来说, 两个事务在同时进行更新时,一个事务在更新, 另一个事务需要操作时,不可能看到这条记录之前的值, 需要等到之前的事务要么执行(事务提交),要么不执行(事务回滚...如果一个事务已经存在,则将这个存在的事务挂起(自己一个事务,独立事务)
NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常(必须由非事务的方法调用)
MANDATORY: 如果已经存在一个事务...如果没有一个活动的事务,则抛出异常(必须由带有事务的方法来调用)
画重点
spring的事务管理中, 让我们容易出现问题的几个传播约定
REQUIRED
NESTED
1是默认传播机制, 2是嵌套传播机制