2

我正在使用两个数据库(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()成功调用,但对我来说这并不好。有没有办法使继承的方法也具有事务性?

4

0 回答 0