2014-08-27 12 views
1

當然,我們可以做這個工作,如:如何使用spring jpa執行線程安全的「update XXX set a = a + 1」語句?

User old = userRepository.findOne("[email protected]"); 
old.setFollwersNumber(old.getFollwersNumber() + 1); 
userRepository.save(old); 

,但它不是線程安全的,是不是?

+2

你說的不是安全呢? – geoand 2014-08-27 13:35:13

+2

而這不會是安全的,因爲? – 2014-08-27 13:35:47

+0

我的意思是它不是線程安全的。 – 2014-08-27 15:13:17

回答

0

你是否擔心鄰接兩個人同時跟隨同一個用戶,然後這個數字將不正確?

爲了不更新用戶對象來跟蹤追隨者的數量,爲什麼不寫一個查詢追隨者數量的查詢?你有下面的表格或可以查詢的東西嗎?這會使兩者不同步。

有多個選項可供您在應用程序中高效緩存/過期以提高性能。