我有以下场景,我有一个抽象的超类作为服务,其中有一个用@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
}
}