版权声明:本文为博主原创文章,未经博主允许不得转载。 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