具有传播的事务是否需要新的可以更新被另一个事务锁定的对象?

Does a transaction with propogation reqiures new can update a object which locked by another transaction?

@Transactional("transaction1")
public void A(){
    Actor actor = selectForUpdate(id);
    testService.B(actor);
}

@Transactional("transaction1",propagation = Propagation.REQUIRES_NEW)
public void B(Actor actor){
  update(actor);
}

方法 A 锁定 actor 并调用方法 B,方法 B 开始事务传播需要new.I想知道我是否可以在方法 B 中更新 actor。

不,它不允许您使用 Propagation.REQUIRES_NEW 进行更新。 但是,如果你想实现这个功能,你可以通过:

@Transactional("transaction1",propagation = Propagation.REQUIRED)
public void B(Actor actor){
  update(actor);
}

阅读spring交易文档: http://docs.spring.io/spring-framework/docs/4.2.x/spring-framework-reference/html/transaction.html