zoukankan      html  css  js  c++  java
  • Spring 下默认事务机制中@Transactional 无效的原因

    Spring中 @Transactional 注解的限制
    1. 同一个类中, 一个nan-transactional的方法去调用transactional的方法, 事务会失效

    If you use (default) Spring Proxy AOP, then all AOP functionality provided by Spring (like @Transational) will only be taken into account if the call goes through the proxy. -- This is normally the case if the annotated method is invoked from another bean.
    
    如果使用(默认)Spring Proxy AOP,那么Spring提供的所有AOP功能(如@Transational)只有在通过代理类调用时才被考虑。 - 如果从普通的bean调用注解方法,则通常注解是不会生效的。
    1. 在private方法上标注transactional, 事务无效
    When using proxies, you should apply the @Transactional annotation only to methods with public visibility. If you do annotate protected, private or package-visible methods with the @Transactional annotation, no error is raised, but the annotated method does not exhibit the configured transactional settings. Consider the use of AspectJ (see below) if you need to annotate non-public methods.
    使用代理时,应将@Transactional注解应用于具有public方法。 如果使用@Transactional注解对protectedprivate或包访问权限的方法进行修饰,尽管不会引发错误,但是带注解的方法不会显示配置的事务设置。 如果需要对非public方法添加注解,请考虑使用AspectJ(见下文)。

    这里有一个详细的说明 http://stackoverflow.com/questions/4396284/does-spring-transactional-attribute-work-on-a-private-method

    相关博客:@Transactional 无效的解决方案

    此文章来源:http://www.cnblogs.com/milton/p/6046699.html

  • 相关阅读:
    二维线性表 list实现
    行测题
    邻接表
    链表中插入和删除结点
    linux监控指标和命令
    lr测试结果分析
    python 装饰器 decorator
    并查集 PID331 / 家族
    素数环 dfs+回溯
    catch the cow bfs
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226129.html
Copyright © 2011-2022 走看看