1、数据库底层不支持事务。
2、在非public修饰的方法使用。
3、rollbackFor属性设置错误。
4、本地方法直接调用。
5、异常被try...catch吃了,导致事务失效。
「反例:」
public class TransactionTest{
public void A(){
// 插入一条数据
// 调用方法B(本地类调用,事务失效了)
B();
}
@Transactional
public void B(){
// 插入数据
}
}
「注解的事务方法给本类方法直接调用,事务失效」