zoukankan      html  css  js  c++  java
  • Spring的@Transactional事务注意事项

    1、@Transactional应该放在方法级别,不需要使用事务的方法,就不要放置事务,
    2、查询方法声明不要事务,否则对性能是有影响的。
    3、对同一个类里的方法调用, @Transactional无效
    内部方法使用this.方式调用,没有通过spring获取调用,无法AOP
    解决方法:通过ApplicationContext获取bean的方式进行调用。
    4、@Transactional注解方法被外部其他类调用才有效,所以一定要public,
    在 protected、private或package-visible方法上使用 @Transactional 注解,不报错,但事务无效。

    * 抛出受查异常XXXException,事务会回滚。
    * 抛出运行时异常NullPointerException,事务会回滚。
    * Quartz同步任务,execute直接调用@Transactional方法,可回滚;间接调用,不会回滚。(参见3)
    * Quartz异步任务,execute直接调用@Transactional方法,可回滚;间接调用,不会回滚。(参见3)
    * 在controller中加上@Transactional,不会回滚。

  • 相关阅读:
    迭代器、生成器、装饰器(转)
    Python小数据池
    接阿里云oss有感
    VSCode快捷键
    前端跨域调请求 nginx反向代理
    Git生成密钥
    【westorm系列之二】配置格式化
    钉钉安卓端无法渲染数据
    express 写接口
    js正则匹配身份证号 有坑
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/Transactional.html
Copyright © 2011-2022 走看看