【发布时间】:2011-09-20 05:42:11
【问题描述】:
我想了解使用传播支持进行弹簧事务的用途。 java 文档提到,如果从事务中调用具有@Transactional(propagation = Propagation.SUPPORTS) 的方法,则它支持该事务,但如果不存在事务,则该方法以非事务方式执行。
不管Propagation.SUPPORTS如何,这不是春季交易的行为吗?
public class ServiceBean {
@Transactional(propagation = Propagation.SUPPORTS)
public void methodWithSupportsTx() {
//perform some database operations
}
}
public class OtherServiceBean {
@Transactional(propagation = Propagation.REQUIRED)
public void methodWithRequiredTx() {
//perform some database operations
serviceBean.methodWithSupportsTx();
}
}
在上面的代码示例中,不管methodWithSupportsTx()是否有@Transactional(propagation = Propagation.SUPPORTS)注解,它都会在事务中执行,这取决于methodWithRequiredTx()是否有@Transactional注解,对吧?
那么,拥有传播级别 SUPPORTS 的需求/用途是什么?
【问题讨论】:
标签: spring transactions propagation