spring 事務隔離級別配置


聲明式的事務處理中,要配置一個切面,即一組方法,如

Java代碼   收藏代碼<!-- 聲明式事務管理 -->
<!-- 隔離級別配置-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
        <tx:attributes>  
            <tx:method name="find*" propagation="SUPPORTS" read-only="true" />  
            <tx:method name="query*" propagation="SUPPORTS" read-only="true" />  
            <tx:method name="list*" propagation="SUPPORTS" read-only="true" />  
 
            <tx:method name="create*" propagation="REQUIRED" />  
            <tx:method name="save*" propagation="REQUIRED" />  
            <tx:method name="modify*" propagation="REQUIRED" />  
            <tx:method name="update*" propagation="REQUIRED" />  
            <tx:method name="delete*" propagation="REQUIRED" />  
            <tx:method name="*" propagation="SUPPORTS" read-only="true" />  
        </tx:attributes>  
    </tx:advice>


其中就用到了propagation,表示打算對這些方法怎么使用事務,是用還是不用,其中propagation有七種配置,REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。默認是REQUIRED。
2.七種配置的意思
下面是Spring中Propagation類的事務屬性詳解:

REQUIRED:支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。

SUPPORTS:支持當前事務,如果當前沒有事務,就以非事務方式執行。

MANDATORY:支持當前事務,如果當前沒有事務,就拋出異常。

REQUIRES_NEW:新建事務,如果當前存在事務,把當前事務掛起。

NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

NEVER:以非事務方式執行,如果當前存在事務,則拋出異常。

NESTED:支持當前事務,如果當前事務存在,則執行一個嵌套事務,如果當前沒有事務,就新建一個事務。
3.注意.
這個配置將影響數據存儲,必須根據情況選擇。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM