指定Serializable隔离级的Transactional方法,同库其他事务方法是否串行化?
问题解答
- 只有
bar()方法的操作会按串行化隔离级执行,foo()方法不会。 - Spring中
@Transactional注解的默认隔离级是对应数据库的默认隔离级别(例如MySQL默认是REPEATABLE READ,Oracle默认是READ COMMITTED),只有显式指定isolation=Isolation.SERIALIZABLE的事务才会启用串行化规则。 - 串行化隔离级的强制串行执行特性,仅作用于设置了该隔离级的事务本身。
foo()方法的事务使用默认隔离级,它和其他事务的执行顺序由数据库的并发控制机制决定,不会被强制串行执行。
内容的提问来源于stack exchange,提问作者Augustine Theodore
相关产品推荐
相关产品推荐

