首页 > 解决方案 > 即使在使用@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它们工作正常。

标签: javaspringtransactions

解决方案


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


推荐阅读