【事务】<查询不到同一调用方法其它事务提交的更新>解决方案

【事务】<查询不到同一调用方法其它事务提交的更新>解决方案

最近遇到一个很棘手的问题,至今也解释不清楚原因,不过已经找到了解决方案。

先来看看Propagation属性的值含义,@Transactional中Propagation属性有7个选项可供选择:

  1. Propagation.MANDATORY。当前方法必须在已经定义的Transaction中运行,如果没有已定义的Transaction则抛出异常。

  2. Propagation.NEST。如果没有已定义的Transaction,当前方法新开一个Transaction并在该Transaction中运行。如果存在已定义的Transaction,当前方法在嵌套事务(Nested Transaction)中运行 — 嵌套事务中可以定义储存点,因此可以独立于外部的Transaction而进行rollback。

  3. Propagation.NEVER 。当前方法不应在Transaction中运行,如果存在已经定义的Transaction则抛出异常。

  4. Propagation.NOT_SUPPORTED。当前方法不应在Transaction中运行,如果存在已经定义的Transaction,则该Transaction暂停(挂起)直至该方法运行完毕。

  5. Propagation.REQUIRED。 默认值。当前方法必须在Transaction中运行。如果存在已经定义的Transaction,则该方法在已定义的Transaction中运行;如果不存在已经定义的Transaction,则该方法新开一个Transaction并在其中运行。

  6. Propagation.REQUIRES_NEW。当前方法必须在新开的Transaction中运行。如果存在已经定义的Transaction,则该已定义的Transaction暂停直至新开的Transaction执行完毕。

  7. Propagation.SUPPORTS。当前方法不需要在Transaction中运行,但如果存在已经定义的Transaction,则该方法也可以在Transaction中正常执行。

遇到的问题是这样的:

// surports 查询不到同一调用方法其它事务提交的更新。 原因未知
a() {
  //surports
     b.b();//requstd or request_new
     b.c(); //surports --查询不到b方法中更新的数据

解决方式:

避免这种情况的方法, a()方法不被aop代理

现在只是用这种方式解决了,但是想不明白为什么要这么做,如果有哪位大神能解释清楚原因请告知一下,非常感谢!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2264.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LinkedHashSet类「建议收藏」

    LinkedHashSet类「建议收藏」概述:LinkedHashSet:元素唯一,元素无索引,元素存取有序由哈希表结构保证元素唯一,由链表保证元素存取有序案例:publicclassDemo1{publicstaticvoidmain(String[]args){//1.创建一个LinkedHashSet集合,指定集合中元素的类型为String类型LinkedHashSet&l…

    2022年10月12日
    2
  • 程序员进外包后不好找工作吗_程序员去外包是不是就废了

    程序员进外包后不好找工作吗_程序员去外包是不是就废了在职场中选择公司非常重要,有些人为了贪图大公司名气,选择去干大公司的外包,但要知道外包跟正式员工,不管是收入还是从职业地位来说相差非常大,所以建议想去外包公司上班的请慎重。最近在职业论坛看到这样一个热门的帖子,“二本毕业,在华为外包工作3年,考虑跳槽却不收外包背景,怎么办”。到底怎么回事?请往下看。原来一位网友说,自己是二本毕业,到现在已经三年了,一直在华为外包,工作时间和华为正式工一样,每…

    2022年9月1日
    2
  • css伪元素选择器有哪些_css3伪选择器

    css伪元素选择器有哪些_css3伪选择器伪元素选择器有::first-letter,::first-line,::selection,::before,::after

    2025年6月3日
    2
  • noip2011 day1[通俗易懂]

    noip2011 day1[通俗易懂]简单模拟,蜜汁WA。因为错了还是写一下思路:   先保存,然后倒着(n到1)枚举覆盖目标点的毯子,找到即是答案。#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstdlib&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include&lt;cctype&gt;…

    2022年9月25日
    2
  • ios屏幕旋转设置_旋转平移和缩放

    ios屏幕旋转设置_旋转平移和缩放目录(?)[-]一如何设置AnchorPoint二如何获得AnchorPoint经常会遇到需求,要求手势的缩放或者旋转操作,要求动作变化围绕某一个特定点,或者是两指的中心点,或者是某一个点。这个问题首先要清晰的知道,iOS各个view的层次关系。特别是,要清楚的知道,当前view的frame与superView的bounds是一个坐标

    2022年10月8日
    3
  • dubbo原理详解_dubbo的作用

    dubbo原理详解_dubbo的作用alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西来解决这些问题。基本原理如图: 在我们的系统中,经常会有一些跨

    2025年6月28日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号