【发布时间】:2018-10-03 00:25:30
【问题描述】:
这个问题来自那个,如果我有一个methodA,并且classA中有methodB,如下所示
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");
}
}
在classB中直接调用methodA,不会对methodB产生事务影响(也就是说spring不会回滚插入操作,即使RuntimeException发生了)。
当我将@Transactional 从methodB 移动到methodA,并再次调用methodA 时,@Transactional 注释起作用。
但是,如果我在methodA 真的有很多工作要做,会不会在总执行时间内弹簧锁表?
【问题讨论】:
-
这取决于您的隔离级别和数据库。
标签: spring spring-transactions transactional