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"/> 
    删除掉


  • 相关阅读:
    java 重定向和转发的区别
    Python练习100则--部分概念的没有做
    MYSQL忘记root密码后如何修改
    二分查找注意点
    数据库连接串整理
    MYSQL mysqldump数据导出详解
    MVCC的一些理解
    MySQL 加锁处理分析-转载
    扩展1
    maven-windows使用
  • 原文地址:https://www.cnblogs.com/blogxiao/p/10133433.html
Copyright © 2011-2022 走看看