为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

4 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

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

查看完整回答
1 反对 回复 2019-03-01
?
大莫一秋

TA贡献2条经验 获得超0个赞

第一、数据可见性是数据库本身的隔离级别决定的 不是事物要处理的 第二 、一个方法所有线程都是同一个事物?天呐 怎么有这样的想法
查看完整回答
反对 回复 2019-11-23
?
大莫一秋

TA贡献2条经验 获得超0个赞

第一、数据可见性是数据库本身的隔离级别决定的 不是事物要处理的 第二 、一个方法所有线程都是同一个事物?天呐 怎么有这样的想法
查看完整回答
反对 回复 2019-11-23
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 7699 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信