有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    上面的代码运行正常,问题出在事务管理器中。我使用的是另一个事务管理器。我用来更新数据的表位于不同的数据库中