如何在春季解决'No transaction is currently active',即使在使用@transactional注释后?


//--Service class--
@Service
public class myService implements myInterface {
@Autowired
private MyDao myDao;
//some code
myDao.updateMethod(/*some arguments*/);
//some code   
}
//--Dao class--
@Repository
public class MyDao {
@Transactional(transactionManager = sample_a)
public void updateMethod(/*some arguments*/){
newUpdateMethod(/*some arguments*/);
}
@Transactional(transactionManager = sample_a)
public void newUpdateMethod(/*some arguments*/){
/* Actual call to DB taking place */
}
}

当我从服务类调用updateMethod时,它给出了与事务相关的异常- 无效数据访问ApiUsageException - 当前没有事务处于活动状态,我是否以正确的方式使用@Transactional?我也在某处读到@Transactional不应该在课堂上使用带有@Repository注释的方法,但我在 Dao 类中还有其他方法@Transactional,它们工作正常。

上面的代码工作正常,问题出在事务管理器中。我使用的是不同的事务管理器。我用来更新数据的表位于不同的数据库中。

最新更新