我正在使用两个数据库(MySQL和HSQL),因此我需要在Spring应用程序中使用两个事务管理器。请看一下这段代码:
public abstract class ClientService implements IClientService{
public void doSomething(){
}
}
public interface IClientService{
void doSomething();
}
@Transactional("txManagerHSQL")
public class ClientServiceHSQL extends ClientService{
}
@Transactional("txManagerMySQL")
public class ClientServiceMySQL extends ClientService{
}
我希望ClientServiceHSQL
和ClientServiceMySQL
在不同的数据库上执行doSomething()
,但我得到"org.hibernate.HibernateException: No Session found for current thread"
例外。似乎@Transactional
注释不会影响继承的方法。目前,我必须在每个doSomething()
课程中实施@Transactional
才能成功调用doSomething()
,但对我来说这并不好。有没有办法让继承的方法也是事务性的?