亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

springboot-mongodb如何確保如下情況沒有臟讀

springboot-mongodb如何確保如下情況沒有臟讀

神不在的星期二 2019-03-12 19:37:29
有A,B兩個集合,進行以下事務:1.先查詢A集合得到文檔轉化成java對象2.在內存中用java代碼對對象進行修改后執行MongoTemplate的save操作3.最后在B集合中再進行一次update操作。以上過程中的疑惑在于,兩個線程t1,t2同時進行完該事務的步驟1,進行更改后t1先寫鎖更改了文檔,那么t2得到的數據就是臟數據,此時t1釋放鎖,t2執行save,數據庫的數據就存在了問題,這樣的情況該如何處理?目前我能想到的方法只有java的synchronized鎖住這整個方法,但是在其他方法中對A集合查詢仍然會出現相同的臟數據問題,所以想請教各位有什么好的建議,我是Android開發,剛剛入門服務器,麻煩方案解釋的簡單點哈,謝謝
查看完整描述

2 回答

?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

跟其他數據庫一樣,使用update方法,只更新你想更新的字段,而不是所有字段。使用updateFirstupdateMulti

查看完整回答
反對 回復 2019-03-12
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

save這樣粗暴地把所有字段更新進去,不但造成你說的問題,還會使每次參與更新的字段多于必要,造成不必要的服務器端壓力和oplog壓力。

查看完整回答
反對 回復 2019-03-12
  • 2 回答
  • 0 關注
  • 1414 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號