• java 手动事物回滚Transaction


    1、spring mvc配置异常事物回滚机制

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            ......(省略)
        </bean>

    <!-- 事务管理器 -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>

    <!-- 事务控制 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="save*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="do*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="insert*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="update*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="edit*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="remove*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="delete*" propagation="REQUIRED" rollback-for="Exception" />
                <tx:method name="get*" read-only="true" />
                <tx:method name="select*" read-only="true" />
                <tx:method name="find*" read-only="true" />
            </tx:attributes>
        </tx:advice>

    2、在特殊情况下使用手动事物回滚,如下

    注:手动事物回滚写法简单,但不符合spring提倡的无入侵性,并会使代码与spring框架的事物高度耦合。

    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

  • 相关阅读:
    最近的题越来越难了,卧槽,搞一上午一题不会,题解也看不懂
    hdu 4630 树状数组 ****
    hdu 3473 划分树 ***
    hdu 3360 最小点覆盖 **
    hdu 1507 记录路径的二分匹配 **
    poj 3177 边双联通 **
    hdu 4612 边双联通 ***
    Elasticsearch聚合后分页深入详解
    redis 五种数据类型及其使用场景
    再有人问你分布式锁,这篇文章扔给他
  • 原文地址:https://www.cnblogs.com/bailuobo/p/4515093.html
Copyright © 2020-2023  润新知