Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决';当前没有活动的交易';在春季,即使在使用@transactional注释之后?_Java_Spring_Transactions - Fatal编程技术网

Java 如何解决';当前没有活动的交易';在春季,即使在使用@transactional注释之后?

Java 如何解决';当前没有活动的交易';在春季,即使在使用@transactional注释之后?,java,spring,transactions,Java,Spring,Transactions,当我从服务类调用updateMethod时,它给出了与事务相关的异常-InvalidDataAccessApiUsageException-当前没有活动的事务,我是否正确使用了@Transactional?我还在某个地方读到@Transactional不应该在带有@Repository注释的类中使用,但是我在Dao类中有其他带有@Transactional的方法,它们工作得很好。上面的代码工作得很好,问题出在事务管理器中。我使用的是另一个事务管理器。我用来更新数据的表位于不同的数据库中。上面的代

当我从服务类调用updateMethod时,它给出了与事务相关的异常-InvalidDataAccessApiUsageException-当前没有活动的事务,我是否正确使用了
@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 */
    }

}