事务的传播机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lineuman/article/details/82942184

本文的开头先引入一个问题
一个session里面,可以同时存在多个事务吗?

从会话开始理解

http session :http session是无状态的
sql connection session: sql session 是可以支持事务的,通俗来讲就是可以回滚的,所以是有状态的。事务有两方面的特性可以配置,事务的隔离级别,事务的传播机制,隔离级别在另一篇文章里面有讲,本文讲解事务的传播。

@Transactional(value = "txManager", rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void methodA(){
}

事务的传播


public enum Propagation {
    REQUIRED(0),
    SUPPORTS(1),
    MANDATORY(2),
    REQUIRES_NEW(3),
    NOT_SUPPORTED(4),
    NEVER(5),
    NESTED(6);

    private final int value;

    private Propagation(int value) {
        this.value = value;
    }

    public int value() {
        return this.value;
    }
}

事务利用了哪些东西

sqlsession
autocommit
rollback
commit

猜你喜欢

转载自blog.csdn.net/lineuman/article/details/82942184