在我的Java WEb中,我使用了spring MVC的事務(wù),我在service層中有個(gè)方法是用了@Transaction注解的,這個(gè)方法會(huì)update數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后又查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)。情況是這樣,當(dāng)有多個(gè)請(qǐng)求時(shí),生成多個(gè)線程進(jìn)入這個(gè)方法,然后我發(fā)現(xiàn),在同一個(gè)方法里,update之后再查看這個(gè)數(shù)據(jù),是可以看到數(shù)據(jù)確實(shí)被改變了的,但是這個(gè)改變?cè)谄渌€程中是看不到的。我的問題是,同一個(gè)方法即使多個(gè)請(qǐng)求進(jìn)來(lái)不應(yīng)該是進(jìn)入同一個(gè)事務(wù)嗎?這些線程之間做的數(shù)據(jù)更新不應(yīng)該是彼此可見的嗎?如果我想讓同一個(gè)方法注冊(cè)的事務(wù)都屬于同一個(gè)事務(wù)應(yīng)該怎么做呢?
4 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
肯定不是同一個(gè)事務(wù)啊。
Spring 就是使用ThreadLocal
來(lái)存儲(chǔ)Connection
的,不同的線程Connection
肯定不一樣,所以不可能會(huì)在同一個(gè)事務(wù)中。org.springframework.jdbc.datasource.DataSourceUtils

大莫一秋
TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
第一、數(shù)據(jù)可見性是數(shù)據(jù)庫(kù)本身的隔離級(jí)別決定的 不是事物要處理的 第二 、一個(gè)方法所有線程都是同一個(gè)事物?天吶 怎么有這樣的想法

大莫一秋
TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個(gè)贊
第一、數(shù)據(jù)可見性是數(shù)據(jù)庫(kù)本身的隔離級(jí)別決定的 不是事物要處理的 第二 、一個(gè)方法所有線程都是同一個(gè)事物?天吶 怎么有這樣的想法
添加回答
舉報(bào)
0/150
提交
取消