Java 如何解决';当前没有活动的交易';在春季,即使在使用@transactional注释之后?
当我从服务类调用updateMethod时,它给出了与事务相关的异常-InvalidDataAccessApiUsageException-当前没有活动的事务,我是否正确使用了Java 如何解决';当前没有活动的交易';在春季,即使在使用@transactional注释之后?,java,spring,transactions,Java,Spring,Transactions,当我从服务类调用updateMethod时,它给出了与事务相关的异常-InvalidDataAccessApiUsageException-当前没有活动的事务,我是否正确使用了@Transactional?我还在某个地方读到@Transactional不应该在带有@Repository注释的类中使用,但是我在Dao类中有其他带有@Transactional的方法,它们工作得很好。上面的代码工作得很好,问题出在事务管理器中。我使用的是另一个事务管理器。我用来更新数据的表位于不同的数据库中。上面的代
@Transactional
?我还在某个地方读到@Transactional
不应该在带有@Repository
注释的类中使用,但是我在Dao类中有其他带有@Transactional
的方法,它们工作得很好。上面的代码工作得很好,问题出在事务管理器中。我使用的是另一个事务管理器。我用来更新数据的表位于不同的数据库中。上面的代码工作正常,问题出在事务管理器中。我使用的是另一个事务管理器。我用来更新数据的表位于不同的数据库中。当询问异常时,您需要发布导致异常的实际代码,以及完整准确的堆栈跟踪。调试部分伪代码是不可能的。@JBNizet代码和堆栈跟踪对我来说很复杂,放在这里也很重要。你能给出你对代码流的看法吗?当你询问一个异常时,你需要公布导致它的实际代码,以及它完整而准确的堆栈跟踪。调试部分伪代码是不可能的。@JBNizet代码和堆栈跟踪对我来说很复杂,放在这里也很重要。你能谈谈你对代码流程的看法吗?
//--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 */
}
}