java - 即使使用@transactional注释后,如何在spring中解析 'No transaction is currently active'?

标签 java spring transactions

//--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/

相关文章:

用于处理 win32 FILETIME 的 Java 库?

java - 使用 spring 表单标签为空字段传递 null

spring - Spring Webflow序列化生产中的麻烦

java - spring工具套件创建可运行的jar错误查找配置文件

java - EclipseLink - 并发异常 - signalAttemptedBeforeWait

java - 两次调用 Required 传播的事务函数只会产生 1 个事务(但从另一个类调用时会产生 2 个事务)

java - 使用 Smack 4.1 的 XMPP 客户端在登录期间给出 NullPointerException

java - 无法使用 Tomcat 7 配置 SSL

java - Spring 事务注解

java - 切换选项卡 onNewIntent 导致 IllegalStateException