当前位置: 首页 > 知识库问答 >
问题:

Spring Lock Table if方法是否以及何时使用事务性注释

常朗
2023-03-14

这个问题来自于,如果我有一个methodA和methodB在classA中,如下所示

public class classA {
    public void methodA() {
        // some code
        ...

        // time to deal with db
        methodB();
    }

    @Transactional
    public void methodB() {
        // insert a record 

        throw new RuntimeException("testing");
    }
}

但是,如果我在methoda中确实有很多工作要做,那么spring会在整个执行时间内锁定表吗?

共有1个答案

呼延化
2023-03-14

作为解决方案,我将添加一个新类(即classC),并将methodB(用Transactional注释)移动到新类中。

Springs AOP的限制是,如果在同一个类中调用方法,@transaction将不起作用。
引用@transactional方法从另一个方法调用不会获得事务

 类似资料:
  • 试图收集和理解@事务性注释的要点并越过了一点。因此,在使用事务性注释时,我们需要记住的主要事情是: 事务注释只能应用于公共方法[根据Spring@Transactional属性对私有方法起作用吗? 事务性注释应该应用于具体的类,而不是接口[根据我应该将@transactional annotation放在接口定义还是实现类的位置? 事务注释应应用于服务级别[根据Spring@Transaction

  • 我正在用Spring web-flux和Reactor一起使用,对我来说,不清楚RestController方法何时返回

  • 我有一个向/从外部系统转移资金的服务方法。 null 我不知道如何注释这些,也不知道如何构造第4个请求来管理第3个请求。

  • 问题内容: 我正在从OracleDocGenericMethod中阅读有关泛型方法的信息。当比较指出何时使用通配符以及何时使用通用方法时,我对此感到非常困惑。引用文档。 我们可以在这里使用通用方法: […]这告诉我们类型参数正在用于多态。它的唯一作用是允许在不同的调用站点使用各种实际的参数类型。在这种情况下,应使用通配符。通配符旨在支持灵活的子类型化,这就是我们在此要表达的内容。 我们难道不认为像

  • 本文向大家介绍什么是事务?及其特性?相关面试题,主要包含被问及什么是事务?及其特性?时的应答技巧和注意事项,需要的朋友参考一下 事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。 特性: (1)原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。 (2)一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态 (3)隔离性。在事务正确提交之前,不允许把该事务对数据的任

  • 问题内容: 何时以及如何使用构造函数 以及何时以及如何使用getInstance()(静态工厂方法) 两者有什么区别?我一直使用构造函数,但是什么时候应该使用呢? 问题答案: 每个人似乎都专注于单例,而我认为问题实际上是关于 构造函数与静态工厂方法 。 这实际上是 项目1:考虑静态工厂方法,而不是 Joshua Bloch 的 Effective Java 的构造函数 : 项目1:考虑静态工厂方法