Spring Boot、或者Spring Cloud,切记需要在启动类上加入@EnableTransactionManagement该注解、否则事务不生效。@Transactional是一个方法注解、也是一个类注解;
㈠、当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性。
㈡、当作用在方法级别时会覆盖类级别的定义。
@Transactional当在 protected、private或者默认可见性的方法上使用时是不会生效的,也不会抛出任何异常。@Transactional不填写rollbackFor属性,会导致抛出CheckedException后事务不生效的情况。
@Transactional修饰的方法或者类、不可以存在try catch代码块,会导致事务失效。具体原因可看我2019的一篇文章spring 中事务注解@Transactional与trycatch