//--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 - 当前没有 Activity 的事务,我是否以正确的方式使用 @Transactional
?我还读过某处 @Transactional
不应该在带有 @Repository
注释的类中使用,但我在 Dao 类中有其他带有 @Transactional
的方法,他们工作得很好。
最佳答案
上面的代码工作正常,问题出在事务管理器中。我使用的是不同的交易管理器。我用来更新数据的表位于不同的数据库中。
关于java - 即使使用@transactional注释后,如何在spring中解析 'No transaction is currently active'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59198921/