zoukankan      html  css  js  c++  java
  • spring Existing transaction found for transaction marked with propagation 'never' 解决

    先在申明事务中配置了所有的事务

        <!--配置事物传播策略,以及隔离级别-->
        <tx:advice id="txAdvice" transaction-manager="jdbcTransactionManager">
            <tx:attributes>
                <!-- 注入事务策略 -->
                <tx:method name="delet*"  propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Exception"/>
                <tx:method name="updat*"  propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Exception"/>
                <tx:method name="delet*"  propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Exception"/>
                <tx:method name="inser*"  propagation="REQUIRED" isolation="READ_COMMITTED" rollback-for="Exception"/>
    <!--
                <tx:method name="*" propagation="REQUIRED" isolation="READ_COMMITTED"/>
    -->
            </tx:attributes>
        </tx:advice>

    因为配置了 

    <tx:method name="*" propagation="REQUIRED" isolation="READ_COMMITTED"/>  所有所有的事务都是REQUIRED

    service 实现层配置了注解方式
        @Override
       @Transactional(propagation = Propagation.NEVER,rollbackFor = Exception.class)
        public void never() {
            dao.queryInfo();
        }

    传播级别是NEVER 报出:

    HTTP Status 500 - Request processing failed; nested exception is org.springframework.transaction.IllegalTransactionStateException: Existing transaction found for transaction marked with propagation 'never'

    解决:将配置文件的

    <tx:method name="*" propagation="REQUIRED" isolation="READ_COMMITTED"/> 
    删除掉


  • 相关阅读:
    Linux学习--线程概念
    菱形继承
    C++类型萃取
    Linux学习--进程创建
    Linux学习--进程概念
    比较全面的gdb调试命令
    再度理解原码、反码、补码
    详谈C++虚函数表那回事(多重继承关系)
    【sparkStreaming】将DStream保存在MySQL
    【sparkStreaming】kafka作为数据源的生产和消费
  • 原文地址:https://www.cnblogs.com/blogxiao/p/10133433.html
Copyright © 2011-2022 走看看