在我的Java WEb中,我使用了spring MVC的事務,我在service層中有個方法是用了@Transaction注解的,這個方法會update數據庫中的數據,然后又查詢數據庫中的數據。情況是這樣,當有多個請求時,生成多個線程進入這個方法,然后我發現,在同一個方法里,update之后再查看這個數據,是可以看到數據確實被改變了的,但是這個改變在其他線程中是看不到的。我的問題是,同一個方法即使多個請求進來不應該是進入同一個事務嗎?這些線程之間做的數據更新不應該是彼此可見的嗎?如果我想讓同一個方法注冊的事務都屬于同一個事務應該怎么做呢?
4 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
肯定不是同一個事務啊。
Spring 就是使用ThreadLocal
來存儲Connection
的,不同的線程Connection
肯定不一樣,所以不可能會在同一個事務中。org.springframework.jdbc.datasource.DataSourceUtils
添加回答
舉報
0/150
提交
取消