下面是我的應用程序春數據JPA @Transactional
控制器的流量 - 服務 - 庫
在服務層,我們有@Transactional
註釋 我們也有jpa:repository
配置,其中我們指定的實體管理器和TXN經理。
我的疑問是,我覺得考慮jpa:repositories
中指定的txn管理器,並且在服務層沒有指定@Transactional
的影響。 例如:服務層@Transactional
可以映射到自定義txn管理器,其中由服務調用的存儲庫可能具有不同的txn管理器。那樣會不會造成問題?
有人可以澄清我們在使用jpa存儲庫時是否需要在服務層放置@Transactional
?
不能在DAO層劃分事務:單個工作單元通常會使用多個DAO,並由單一事務服務方法進行編排。爲什麼要定義2個不同的事務管理器,因爲你只需要一個? –
是的......因爲當你做多個數據庫調用時,你希望單個事務不是多個事務。因此,您需要在服務級別啓動的事務。 –
同意。目前的實施有一個設計問題。該服務調用連接到兩個不同架構(這些是純粹的select查詢而不是JTA)的repostories。這就是jpa存儲庫配置了不同的實體管理器工廠和不同的txn管理器的原因。 – lives