我想了解使用傳播支持春季交易。 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?
我不這麼認爲。僅當傳播級別從不出現時才拋出錯誤。另外,PROPAGATION.SUPPORTS不會創建新的事務。 –