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

    <!--配置事物传播策略,以及隔离级别-->
    <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 报出:

解决:将配置文件的

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


相关文章: