java如何在spring中解决“当前没有活动的事务”,即使在使用@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时,它给出了与事务相关的异常-InvalidDataAccessApiUsageException-当前没有活动的事务,我使用@Transactional
的方式正确吗?我还读到一些地方@Transactional
不应该在带有@Repository
注释的类中使用,但我在Dao类中有其他带有@Transactional
的方法,它们工作得很好
# 1 楼答案
上面的代码运行正常,问题出在事务管理器中。我使用的是另一个事务管理器。我用来更新数据的表位于不同的数据库中