具有传播的事务是否需要新的可以更新被另一个事务锁定的对象?
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
@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