你能解釋一下,幕後發生了什麼?Spring HibernateTemplate:它如何處理事務?
在Spring中使用此模板時的事務管理是絕對不清楚的。
如果我調用10個DAO方法,它們全部使用相同的Hibernatetemplate ,我會一個接一個地調用它們呢?每個方法在自己的事務中運行?
這不是有效的不是嗎?
你能解釋一下,幕後發生了什麼?Spring HibernateTemplate:它如何處理事務?
在Spring中使用此模板時的事務管理是絕對不清楚的。
如果我調用10個DAO方法,它們全部使用相同的Hibernatetemplate ,我會一個接一個地調用它們呢?每個方法在自己的事務中運行?
這不是有效的不是嗎?
一般來說,你會把你的交易放在你的服務層看到Spring docs。
如果您只是使用hibernate模板,那麼現成的行爲是自動提交您的daos所做的一切。你需要一個交易經理來照顧你的這種行爲。事務與hibernate模板正交。
您應該在服務上使用Spring declarative transaction management,而不是DAO。
服務知道工作單位,而不是DAO。
這些事務在服務中定義,您希望避免在DAO的 DAO層中定義事務,並在服務層定義的事務中執行數據操作。