Spring @Transactional不会覆盖超类

时间:2017-07-14 15:00:55

标签: java spring inheritance transactions

我有以下场景,我有一个抽象的超类作为服务,其中有一个用@Transactional注释的方法。在一个子类中,我想要注释该方法以使用特定的事务管理器。但是,当我单步执行代码时,它似乎仍然使用超类中指定的事务管理器。

我检查了@Transactional的行为,并使用@Inherited进行了注释。但是,Java文档指出,在这种情况下,注释将在层次结构中的最低类中进行检查,然后在下一个最高级别和向上行中进行检查。

因此,我的后期@Transactional应该是正在使用的内容。但事实并非如此,我试图找出是否还有其他机制在起作用。

代码

public abstact class SuperService {
   @Transactional
   public void save () {
      // Do some work
   }
}

public class SubService extends SuperService {
   @Override
   @Transactional("specialTransactionManager") // <-- This never gets used
   public void save () {
      // Do some work
   }
}

0 个答案:

没有答案