1、什么是事务的传播行为?
就是多个事务方法相互调用时,事务如何在这些方法间传播。
Propagation.REQUIRED 如果当前没有事务就新建一个事务,如果已经存在一个事务,就加入到这个事务中, 最常用的
Propagation.REQUIRED_NEW 新建事务,如果当前存在事务,就把当前事务挂起。
2、@Transactional属性详解
propagation 配置事务的传播行为
isolation 配置事务的隔离级别 一般用默认值
rollbackFor 配置事务回滚的异常类型
timeout 事务超时时间
readOnly 配置为只读事务
2、@Transactional 注解失效的场景
1、@Transactional注解用在非public修饰的方法上
2、数据库引擎不支持事务,比如myisam
3、propagation属性 传播行为设置错误
4、rollbackFor 如果不设置rollbackFor属性,它默认是遇到Error和运行时异常时才会回滚,非运行时异常不会回滚、
5、内部方法之间的相互调用不会被aop拦截,加不上事务。
6、异常被catch了