4.9.10聲明式事務和可程式設計事務混合使用
通過使用聲明式的事務,開發人員無需在代碼中再嵌入事務管理的代碼。如果使用者即聲明了事務,又在代碼中嵌入了事務管理代碼,那麼事務管理架構根據事務類型進行相應的處理,具體的處理方法見下表:
方法實作中開啟事務類型 | ||||
方法聲明事 務類型 | NEW_TRANSACTION | REQUIRED_TRANSACTION | MAYBE_TRANSACTION | NO_TRANSACTION |
屏蔽聲明的事務,程式中開啟一個新事務 | 使用聲明的事務 | 屏蔽聲明 的事務, 程式在 沒有事 務的環 境下運作 | ||
沒有事務 的環境下運作 | ||||
如果聲明的事務存在,屏蔽聲明的事務,程式中開啟一個新事務 | 如果聲明的事務存在,則使用聲明的事務,否則開啟一個新的事務 | 如果聲明的事務存在,則使用聲明的事務,否則不需聲明事務 | 如果聲明的 事務存在, 屏蔽聲明的 事務,程式在 沒有事務的 環境下運作 | |
程式中開啟一個新事務 | 程式在沒有事務的環境下運作 | 程式在沒有 事務的環境 下運作 |
作為使用事務的一個原則,系統中不應該出現同一個方法中既使用聲明式事務又在代碼中編寫事務管理代碼的情況,這樣會導緻達不到預期的事務管理的效果。