0
如果我在@Transactional
上應用了超時,它會在超時後解鎖該行還是會拋出異常?REPEATABLE_READ的春季事務啓動超時
@Transactional(isolation=Isolation.REPEATABLE_READ, timeout=100)
public ExternalServerListenerInfo getTokenForLiveScoutListener() {}
如果我在@Transactional
上應用了超時,它會在超時後解鎖該行還是會拋出異常?REPEATABLE_READ的春季事務啓動超時
@Transactional(isolation=Isolation.REPEATABLE_READ, timeout=100)
public ExternalServerListenerInfo getTokenForLiveScoutListener() {}
經過一番研究,我發現下面的答案:
超時指定允許運行事務的最長時間。這可能是必需的,因爲長時間運行的交易可能會長時間不必要地持有鎖。當事務達到超時期限時,它會回滾。超時需要僅在開始一個新的事務(從http://www.studytrails.com/frameworks/spring/spring-transaction-attributes.jsp)傳播設置
被指定所以,從細節,看來,它會回滾事務並釋放從數據庫鎖。