首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >春季超越水平范围

春季超越水平范围
EN

Stack Overflow用户
提问于 2018-02-09 10:28:13
回答 1查看 81关注 0票数 2

我正在使用Spring 1.4,并试图了解Spring事务管理是如何工作的。

以下是我的问题:

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

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

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

我试着阅读文档,却找不到一个地方可以提到超越级别是分配给连接的。

有人能在这个问题上对我们作出判断吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-09 12:59:29

如果在调用方法A()或B()时没有启动事务,则在调用该方法时创建一个新事务,并在离开该方法时关闭该事务。使用的连接返回到池或关闭。

这个线程解释了当事务关闭时连接发生了什么:

Does Spring close connection after committing transaction?

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48703767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档