【发布时间】:2013-02-25 11:14:19
【问题描述】:
我的代码以编程方式划分了事务。
目前我将隔离设置为PROPAGATION_REQUIRES_NEW。效果很好,但是我需要满足递归行为,为此,如果从同一线程再次调用该方法,我不希望创建新事务。
1) 如果第一次调用该方法,则暂停当前事务并创建新事务。 PROPAGATION_REQUIRES_NEW
2) 如果它被递归调用。不要创建新事务。
示例:我所拥有的并且有效的是。我不想要的是使用入口AtomicInterger。有什么想法吗?
public methoda() {
Integer entrancy = rentrancy.incrementAndGet();
if(entrancy == 1) {
this.transactionTemplate.setPropagationBehavior(..PROPAGATION_REQUIRES_NEW);
}
this.transactionTemplate.execute(new TransactionCallback<E>(){
.......
.......
}
entrancy.decrementAndGet();
}
【问题讨论】:
标签: java spring transactions