Spring @Transaction注解的方法在多线程中是否属于同一个事务

发布于 2022-09-04 09:13:19 字数 291 浏览 11 评论 0

在我的Java WEb中,我使用了spring MVC的事务,
我在service层中有个方法是用了@Transaction注解的,这个方法会update数据库中的数据,然后又查询数据库中的数据。
情况是这样,当有多个请求时,生成多个线程进入这个方法,然后我发现,在同一个方法里,update之后再查看这个数据,是可以看到数据确实被改变了的,但是这个改变在其他线程中是看不到的。
我的问题是,同一个方法即使多个请求进来不应该是进入同一个事务吗?这些线程之间做的数据更新不应该是彼此可见的吗?如果我想让同一个方法注册的事务都属于同一个事务应该怎么做呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

反话 2022-09-11 09:13:19

肯定不是同一个事务啊。
Spring 就是使用ThreadLocal来存储Connection的,不同的线程Connection肯定不一样,所以不可能会在同一个事务中。
org.springframework.jdbc.datasource.DataSourceUtils

我们的影子 2022-09-11 09:13:19

JavaBean实现了底层多线程...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文