在我的Java WEb中,我使用了spring MVC的事务,我在service层中有个方法是用了@Transaction注解的,这个方法会update数据库中的数据,然后又查询数据库中的数据。情况是这样,当有多个请求时,生成多个线程进入这个方法,然后我发现,在同一个方法里,update之后再查看这个数据,是可以看到数据确实被改变了的,但是这个改变在其他线程中是看不到的。我的问题是,同一个方法即使多个请求进来不应该是进入同一个事务吗?这些线程之间做的数据更新不应该是彼此可见的吗?如果我想让同一个方法注册的事务都属于同一个事务应该怎么做呢?
4 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
肯定不是同一个事务啊。
Spring 就是使用ThreadLocal
来存储Connection
的,不同的线程Connection
肯定不一样,所以不可能会在同一个事务中。org.springframework.jdbc.datasource.DataSourceUtils
添加回答
举报
0/150
提交
取消