zoukankan      html  css  js  c++  java
  • Spring 事务不起作用的场景

    在使用 Spring 框架进行项目开发的时候,往往会遇到事务不生效的问题,这里总结下常见的几种情况,避免以后入坑:

    1.如果使用的是 Spring 代理模式的事务,只能用于 public 的方法上,否则事务不会生效。

    2.如果在 Service 内部的 A 调用 B,如果 A、B 方法都没有添加事务注解,事务是不生效的。

    @Service
    public class OrderServiceImpl implements OrderService {
    
    	@Transactional
        public void update(Order order) {
            updateOrder(order);
        }
    
        
        public void updateOrder(Order order) {
            // update order
        }
    
    }
    

    3.方法使用 try catch 但是在 catch 中没有抛出异常。

    @Service
    public class OrderServiceImpl implements OrderService {
    
        @Transactional
        public void updateOrder(Order order) {
            try {
                // update order
            } catch {
    
            }
        }
    
    }
    

    4.抛出的异常类型错误,如果不指定 rollbackFor 的异常类型,默认回滚 RuntimeException。

    @Service
    public class OrderServiceImpl implements OrderService {
    
        @Transactional
        public void updateOrder(Order order) {
            try {
                // update order
            } catch {
                throw new Exception("error");
            }
        }
    
    }
    
  • 相关阅读:
    基于mysql-JDBC的java编程(通过java连接数据库)
    mysql-windows系统上的安装配置
    Jsp编程的基础模型
    CSPRNG随机数产生器
    IntlChar()
    unserialize()过滤机制
    Closure::call()
    PHP匿名类
    LINUX 安装PHP7教程
    解析UNICODE方法
  • 原文地址:https://www.cnblogs.com/manastudent/p/14464487.html
Copyright © 2011-2022 走看看