Spring管理事务@Transactional注解

2024-01-15

传播设置是必需的。

@Transactional(propagation = Propagation.REQUIRED)

事务是读/写的。

它们在什么场景下使用?请给我举例说明


Spring事务默认是

@Transactional(propagation = Propagation.REQUIRED)

因此您不需要指定传播属性。

So, 这是什么意思@Transactionalspring 组件的注释?

  • Spring框架将启动一个新事务并执行所有方法,最后提交事务。

  • 但是如果没有交易存在application context然后Spring容器将开始一个新的事务。

  • 如果不止一种方法配置为Propagation.REQUIRED然后事务行为在逻辑上以嵌套的方式分配给每个方法,但它们都在同一个物理事务下。

那么,结果是什么?
结果是,如果任何嵌套事务失败,则整个事务将失败并回滚(不要在数据库中插入任何值)而不是提交。

Example:

@Service
public class ServiceA{

    @Transactional(propagation = Propagation.REQUIRED)
    public void foo(){
        fooB();
    }

    @Transactional(propagation = Propagation.REQUIRED)
    public void fooB(){
        //some operation
    }

}

解释 :在这个例子中foo()方法分配了事务行为并在内部foo()另一种方法fooB()这也是事务性的。 这里的fooB()充当嵌套事务foo(). If fooB()然后因任何原因失败foo()也未能提交。而是回滚。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring管理事务@Transactional注解 的相关文章

随机推荐

  • java中的@符号[重复]

    这个问题在这里已经有答案了 到底是做什么的 Object field做 我正在阅读一些从反编译器获取的代码 它用 Object name field stuff field stuff public static Object fieldN
  • 类型提示:方法应该接受任何 $art 对象

    我有一个 Collection 类 它有一个 add 方法 add 方法应该只接受对象 所以这是期望的行为 x 5 arbitrary non object obj new Foo arbitrary object collection n
  • 我可以使用变量来控制我使用的 PictureBox 吗?

    有没有办法可以使用变量来控制我在 Visual Basic 中使用的 PictureBox I e CurrentNumber 1 PictureBox CurrentNumber backcolour backcolour 您可以使用Me
  • 处理 BackGroundWorker 的正确方法

    这是处理 BackGroundWorker 的正确方法吗 我不确定在调用 Dispose 之前是否有必要删除事件 在 RunWorkerCompleted 委托中调用 Dispose 也可以吗 public void RunProcessA
  • Haskell中如何进行复杂的IO处理和隐式缓存?

    在较大的应用程序中 通常存在多层 IO 缓存 Hibernate L1 和 L2 Spring 缓存等 这些缓存通常是抽象的 以便调用者不需要知道特定的实现执行 IO 但有一些注意事项 范围 事务 它允许组件之间的接口更简单 例如 如果组件
  • 您可以在 Android Wear 的 GridViewPager 中使用 WatchViewStub 吗?

    我有一个 WatchViewStub 它本身工作得很好 它在适当的方形或圆形 Android Wear 模拟器上显示正确的布局 但是 当我尝试在 GridViewPager 中使用 WatchViewStub 时 即使在圆形模拟器上 它也始
  • OAuth 2.0 两条腿和三腿实现之间的区别

    您能解释一下 OAuth 2 0 两条腿和三腿实现之间的区别吗 以及如何选择呢 哪些适合我 首先 腿是指所涉及的角色 典型的 OAuth 流程涉及三方 最终用户 或资源所有者 客户端 第三方应用程序 和服务器 或授权服务器 因此 三足流涉及
  • 如何删除sparql查询中的重复项

    我写了这个查询并返回情侣列表和特定条件 在http live dbpedia org sparql http live dbpedia org sparql SELECT DISTINCT actor person2 cnt WHERE s
  • 如何计算内核的 Gflops

    我想要衡量我的内核归档了多少峰值性能 假设我有一个 NVIDIA Tesla C1060 它有一个峰值 GFLOPS 为 622 08 http en wikipedia org wiki Nvidia Tesla 240 核 1300MH
  • Fortran 中 DIMENSION CLIPG(1) 语句的概念理解

    在处理一些遗留代码时 我发现了以下 Fortran 函数声明 下面的代码片段显示了函数声明和参数声明 我相信 Fortran 是一种不区分大小写的语言 SUBROUTINE CLIP2G fcut TIME NUMS NUMG CLIPG
  • 重写方法时访问说明符

    假设您有一个使用访问说明符 public 定义虚拟方法的类 您可以更改重写方法上的访问说明符吗 我假设不会 寻找解释 答案是 有点 您只能更改派生类有权访问的成员的访问权限 继承类型没有任何影响 这只控制继承成员的默认访问权限 在某种程度上
  • 使用 vb6 连接字符串

    我正在尝试在 vb6 中连接 不支持运算符 我想做类似下面代码的操作 我想在程序处理此代码时向文本框添加更多字符串 谁能建议将 更改为什么 我知道将一个字符串添加到另一个字符串时可以使用 但就我在这里正在处理的示例而言 这似乎不合适 Tha
  • Java 1.8 和 Mockito 1.9.5 出现编译错误

    切换到Java 1 8后 JDK 我的一些测试类无法编译 实现类示例 import java util concurrent Callable import java util concurrent Future public class
  • 基于类的视图上的 Django 表单验证

    我有一个非常简单的基于类的视图 在views py中 class IncidentEdit UpdateView model Incident fields visible field list sucess url status 按原样工
  • 如何为 Djoser 电子邮件使用不同的域?

    如何更改电子邮件 djoser 内的链接发送使用的域 我发现 要更改链接域 您需要将 DOMAIN 和 SITE NAME 添加到项目设置中 例子 DOMAIN config DOMAIN example com SITE NAME con
  • 使用 Python 从图像创建数据集以进行人脸识别

    我正在尝试用 Python 编写一个人脸识别程序 我将应用 k nn 算法进行分类 首先 我将图像转换为灰度 然后使用图像的像素 总共 128x128 16384 个特征 创建一个长列向量 通过使用 Opencv 的 imagedata 函
  • 如何更改基于 autotools 的 Bitbake 配方的安装路径?

    我有一个基于自动工具的 BitBake 配方 我想将其安装在其中 usr local bin和安装的库 usr local lib 代替 usr bin and usr lib 这是默认目标目录 这是其中的一部分autotools bbcl
  • Ansible vars_prompt 角色

    我有一套Ansibleplaybooks 和主 yml 文件是这样的 hosts all roles common install nginx 我想在触发剧本时添加确认消息 我尝试了这个但没有成功 hosts all vars prompt
  • 为什么没有 2 字节浮点并且已经存在实现?

    假设我真的内存不足并且想要更小的范围 类似于short vs int 着色器语言已经支持half对于半精度的浮点类型 不仅仅是来回转换使值在 1 和 1 之间 即返回一个像这样的浮点数 shortComingIn maxRangeOfSho
  • Spring管理事务@Transactional注解

    传播设置是必需的 Transactional propagation Propagation REQUIRED 事务是读 写的 它们在什么场景下使用 请给我举例说明 Spring事务默认是 Transactional propagation