如果 @Transactional 注解不起作用,可能是以下几个原因造成的:
没有启用事务管理器。在使用 @Transactional 注解时,必须在配置文件中启用事务管理器,否则注解将不会生效。
注解的位置不正确。 @Transactional 注解应该放在目标方法上,而不是放在类上。
没有提供代理。如果你使用的是 AspectJ 注解风格的 @Transactional,那么你需要在配置文件中提供一个事务代理。
目标方法被代理了。如果目标方法被另外一个方法调用,那么事务可能不会生效。这是因为在代理方法内部调用目标方法时,事务可能会被挂起。
如果你遇到了 @Transactional 不起作用的情况,你可以尝试检查以上几个原因,看看是否能够解决问题。