0
下面的jdbcTemplate更新腳本是線程安全的嗎?它的作用主要是:Spring JdbcTemplate是更新原子嗎?
balance -= amount;
下面是代碼:
String sql = "update player.playerbalance b set b.balance = (b.balance - ?) where b.id = ? and b.balance >= ?";
jdbcTemplate = new JdbcTemplate(dataSource);
int i = jdbcTemplate.update(
sql,
new Object[] {wager, playerBalance.getId(), wager});
如果這樣的兩個更新發生在同一時間,會發生什麼?
謝謝,
,你會得到一個異常:'javax.persistence.OptimisticLockException'或'OptimisticLockingFailureException'或其他.. – Jaiwo99
但我並沒有明確定義鎖.. – Urbanleg
@ Jaiwo99我懷疑你會得到這樣的異常,因爲沒有樂觀併發檢查這裏 –