J2ee web程式的service層中的事務怎樣處理才比較合理?
目前在一個遺留系統上增加新功能,該系統採用的struts和hibernate,沒有使用spring來對service層進行管理。我在增加新功能的時候,業務邏輯放在service層來實現,遇到一個問題:怎樣在service層對事務進行合理的控制?
一個service方法中,通常要呼叫多個dao方法,這時,service的方法才是一個事務單元。
第一個問題:service方法中的每個dao方法共用一個session,還是各用各的?
如果共用一個session,service方法中只要呼叫HibernateUtils來得到一個session,接著開始事務,然後執行多個dao方法,然後提交事務,關閉session就可以了。
如果各用各的,在service方法中獲得事務,然後將session管理放到每個dao方法中,這時,service方法中的事務要跨越多個session,這時必須用JTA實現(查資料所得).
第二個問題:有些情況下,需要把service方法中呼叫的多個dao方法中的每一個設定成事務單元,這時怎樣處理service方法的事務和dao方法的事務?肯定不能是service方法作為一個事務單元,而它呼叫的每個的每個dao方法也各自處理成一個事務單元吧?
一個service方法中,通常要呼叫多個dao方法,這時,service的方法才是一個事務單元。
第一個問題:service方法中的每個dao方法共用一個session,還是各用各的?
如果共用一個session,service方法中只要呼叫HibernateUtils來得到一個session,接著開始事務,然後執行多個dao方法,然後提交事務,關閉session就可以了。
如果各用各的,在service方法中獲得事務,然後將session管理放到每個dao方法中,這時,service方法中的事務要跨越多個session,這時必須用JTA實現(查資料所得).
第二個問題:有些情況下,需要把service方法中呼叫的多個dao方法中的每一個設定成事務單元,這時怎樣處理service方法的事務和dao方法的事務?肯定不能是service方法作為一個事務單元,而它呼叫的每個的每個dao方法也各自處理成一個事務單元吧?
相關文章
- 比較微服務中的分散式事務模式微服務分散式模式
- MySQL中的事務處理MySql
- web service 的事務問題Web
- C#處理Access中的事務C#
- redis的事務處理Redis
- java事務的處理Java
- 智慧數字經營平臺怎樣搭建才合理?
- 微服務的分散式事務模式比較 | RedHat微服務分散式模式Redhat
- 網站頁面內的內容結構怎樣佈局才合理?網站
- 面試題:你工作中碰到的印象比較深的 bug,你怎麼處理的?面試題
- 需要將多個視訊進行去色的處理怎麼樣操作比較快?
- 推薦:J2EE容器事務XA處理機制
- MySQL中不得不提的事務處理MySql
- web層與DAO層的解耦如何設計合理?Web解耦
- 分散式事務處理方案,微服事務處理方案分散式
- Service 層異常拋到 Controller 層處理還是直接處理?Controller
- Entity Framework中 批量提交 事務處理Framework
- 軟體中事務處理問題!
- 基於spring的web應用,如何處理服務層的錯誤?SpringWeb
- HashSet與HashMap比較——新增物件已存在處理方式一樣?HashMap物件
- MySQL事務處理MySql
- 12事務處理
- mysqli 事務處理MySql
- Redis中的事務處理機制分析與總結Redis
- 怎樣處理投資人的退出?
- 怎樣才算得上合格的程式設計師程式設計師
- 關於jdon 的事務處理疑惑?
- TransactionScope事務處理方法介紹及.NETCore中的注意事項NetCore
- SQL Server 2008中的聯機事務處理SQLServer
- ITL與事務處理
- php事務處理方法PHP
- MYSQL--事務處理MySql
- SpringDataRedis事務處理SpringRedis
- mysql事務處理(轉)MySql
- Spring事務專題(三)事務的基本概念,Mysql事務處理原理SpringMySql
- 怎樣處理包含的動態模板
- 如何配置tomcat maxHttpHeaderSize 比較合理TomcatHTTPHeader
- 阿里是如何處理分散式事務的阿里分散式