在域/服務層和Dao層中使用此@Transactional
註釋有什麼區別。它是否會在域圖層中提供任何優勢?@ Spring中各層之間的交換註釋
0
A
回答
0
您使用@Transactional
註釋的地方指定了您的交易範圍。
在DAO層中使用它時,您指定每個DAO操作將在事務中提交。
在服務中使用它時,您指定每個服務操作(業務單位)都在事務中提交,因此建議這樣做,因爲通常服務方法表示應該包含在同一事務中的業務單位,因爲任何故障都應該滾動支持整個業務部門。
1
在服務層中使用@Transactional
是個好習慣,因爲它管理着識別數據庫和/或業務事務範圍所需的邏輯。設計中的持久層不知道事務的範圍。
DAOs可以像其他任何bean一樣製作@Transactional
,但在服務層中使用它是一種常見做法。我們傾向於這樣做,因爲我們想要分離問題。持久層只是從數據庫中來回取回/存儲數據。
例如,如果我們想從一個賬戶轉移一些金額到另一個賬戶,我們需要兩個操作,一個賬戶需要借記其他需要貸記的賬戶。所以,這些操作的範圍只有服務層而不是持久層。
持久層無法知道它在哪個事務中,例如使用方法person.updateUsername()
。它應該始終運行在它自己的單獨事務中嗎?沒有辦法知道,這取決於調用它的業務邏輯。
以下幾個線程,你應該閱讀
0
@Transactional:有兩個不同的概念來考慮,每個都有它自己的範圍和生命週期:持久化上下文,數據庫事務 它看起來像你更多的數據庫牽引:
@Transactional註釋本身定義了單個數據庫交易的範圍上。數據庫事務發生在持久化上下文的範圍內。
持久化上下文在JPA EntityManager中,使用休眠會話在內部實現
相關問題
- 1. 交互式MapView註釋與每條註釋之間的直線
- 2. Spring + Jersey交易註釋
- 3. Spring AOP:用交換管理的註釋替換XML?
- 4. EJB和客戶端層之間的註釋可見性
- 5. 在標準層和免費層之間進行交換 - Azure
- 6. JTA和Spring之間的差異@Transactional註釋
- 7. 用各種語言編寫的程序之間交換數據
- 8. Spring Portlet中的@GetMapping註釋
- 9. 在小冊子熱圖中的層之間交換
- 10. 如何在cocos2d-x中的兩層之間交換數據?
- 11. spring @Transactional註釋
- 12. Spring @ComponentScan註釋
- 13. Spring @Value註釋
- 14. JFreeChart分層註釋
- 15. Hibernate - 註釋和公共註釋之間的區別?
- 16. JPA級聯註釋和Hibernate級聯註釋之間的區別
- 17. 將代碼轉換爲Spring註釋
- 18. 用Spring註釋替換HttpServletRequest和HttpServletResponse
- 19. 將spring security xml轉換爲註釋
- 20. 您是否嚴格遵循項目中各層之間的n層架構和關注點分離?
- 21. Spring批註與註釋
- 22. 幾個DAO層之間的交易?
- 23. Spring名稱註釋
- 24. Spring註釋組件
- 25. Spring Scope註釋值
- 26. Spring + Hibernate ORM註釋
- 27. 註釋在Spring MVC
- 28. Spring MVC註釋@ModelAttribute
- 29. REST層的Spring註解
- 30. onetomany和manytomany註釋之間的區別
感謝您的迴應。但是我使用這個註釋來回滾。我想在Domain和Dao層中清楚地理解這個註解的用法。我也想知道使用@Transactional註釋的優缺點 –