我想了解使用传播支持进行春季交易的用途。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
注释,对吧?
那么拥有传播级别支持的需要/用途是什么?