Spring 事务管理 @Transactional
- 注解:@Transactional
- 位置:业务层的方法上、类上、接口上
- 作用:将当前方法交给spring进行事务管理,方法执行前,开启事务;成功执行完毕,提交事务;出现异常,回滚;
rollbackFor属性:
默认情况下,只有出现RuntimeException才回滚。rollbackFor属性用于控制出现何种异常类型,回滚事务。
propagation 属性:
事务传播行为:当一个事物被另一个事务方法调用时,这个事务方法怎么进行事务控制。
默认为 REQUIRED :需要事务,有则加入,无则创建新事务
例:
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(Integer id) {
//1.删除部门
deptMapper.deleteById(id);
//2.删除部门所有员工
empMapper.deleteByDeptId(id);
}
另外可以:
#开启事务管理日志
logging.level.org.springframework.jdbc.support.JdbcTransactionManager:debug