gpt4 book ai didi

java - Spring 交易级别范围

转载 作者:行者123 更新时间:2023-11-30 10:19:16 24 4
gpt4 key购买 nike

我正在使用 Spring Boot 1.4 并试图了解 Spring 事务管理的工作原理。

这是我的问题:

假设我有一个服务,方法 A@Transactional(isolation = SERIALIZABLE) 注释,另一个方法 B 注释使用 @Transactional(isolation = READ_COMMITED)

然后让我们想象一些服务 X 依次调用这两个方法 AB。我的同事说事务级别是在 Spring 中为每个连接设置的。这意味着如果池中的相同连接用于这两个顺序调用,则事务 AB 的隔离级别 = SERIALIZABLE。

然而,对我来说这似乎有点奇怪。我希望这两个事务具有不同级别的隔离,因为所有 sql 数据库都允许为给定事务显式设置隔离级别。

我试图阅读文档,但找不到提到将事务级别分配给连接的地方。

有人可以在这个问题上评判我们吗?

最佳答案

如果在调用方法 A() 或 B() 时没有启动事务,则在调用方法时创建新事务,并在离开方法时关闭。使用的连接返回池或关闭。
此线程解释了事务关闭时连接发生的情况:
Does Spring close connection after committing transaction?

如果存在一个包含两种方法的事务,则只有一个连接用于两种方法;我猜隔离级别是由更大的事务定义的级别。

关于java - Spring 交易级别范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48703767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com