是否可以爲調用DAO(數據訪問對象)方法的方法啓用事務?在BusinessLayerFacade
所有方法Spring AOP事務管理和休眠:不需要的數據庫提交
class BusinessLayerFacade implements Facade {
//no transaction handling allowed here
public X foo() {
//do something
}
public Y changed(DomainObject myObject) {
//do something
//<-- start transaction
// calling DAO
//do something
// calling DAO
//<-- end transaction
}
}
允許交易導致一些不需要提交給數據庫。例如。當調用foo()時執行Exception
時執行changed(DomainObject myObject)
,則myObject
已被提交到數據庫,而不是恢復事務回滾上的更改。
任何想法?
這是defenitly通過名稱來過濾方法的選擇,但我們可以請放一點魔術在那裏;-)是否有可能在changed()
一個DAO方法的第一個電話開始一個事務,並開始承諾從changed()
返回。如果這是可能的,那麼在命名類中的新方法時我不必小心。
感謝,斯特凡
沖洗並提交事務是不一樣的。 Hibernate可以決定在事務期間刷新 - 只是爲了同步其會話和數據庫狀態。而休眠可以決定做一個刷新然後回滾事務。 – svaor
我在我的問題中糾正了這個問題。感謝您的建議! – Dangermouse