bean 内部,如果方法a调用方法b,而方法b上有transactional注解,那么a调用b的时候事实上并不会创建事务。
原因:事务是在代理类层面实现的,而类内部方法调用并没有走到代理类。所以并不会在执行前开始事务,也不会在执行后提交或者回滚。
解法(如果想让b方法的注解生效):把这个bean autowire一个自己作为成员,然后使用这个成员调用b方法。这样就可以调到代理类了。
bean 内部,如果方法a调用方法b,而方法b上有transactional注解,那么a调用b的时候事实上并不会创建事务。
原因:事务是在代理类层面实现的,而类内部方法调用并没有走到代理类。所以并不会在执行前开始事务,也不会在执行后提交或者回滚。
解法(如果想让b方法的注解生效):把这个bean autowire一个自己作为成员,然后使用这个成员调用b方法。这样就可以调到代理类了。