springboot的@version在tidb下失效的問題

今天發生了一個很令人崩潰的事情,因爲數據併發問題導致了髒數據,所以我想使用springdatajpa的@Version樂觀鎖功能,只要更新的時候不是最新的版本就會拋出異常ObjectOptimisticLockingFailureException,按理說是很簡單的實現,然後再用切面攔截這個異常重試一定的次數,這是我的本來打算。

然後代碼寫好了,測試的時候發現怎麼都沒辦法拋出異常,我重試了各種方法,在網上找了各種資料(完全沒有提到這種情況),換springboot的版本,換執行方法,換註解。就在我快要崩潰地去看源碼的時候(真的很崩潰,因爲是雙休日加上很遲了,我實在不想再花時間),我想起在過去我好像是成功過的,在本地的環境下。於是我換成了本地的數據庫mysql,發現異常ObjectOptimisticLockingFailureException出現了,而在tidb的環境下則完全不報異常。我真的很想罵娘,因爲tidb我已經踩了無數的坑,視圖,函數不能用就不說了,在mysql下完全正常的語句卻會執行錯誤,然後報各種莫名其妙的異常,完全看不懂,加上我也不可能去看源碼,只能等待其修復錯誤。然後現在又出現了這個坑。使用tidb的同志們,當你們發現sql語句報出莫名其妙完全看不懂的錯誤的時候,當你們發現某項框架中某個很基本的功能不能用的時候,建議你們首先嚐試發生的問題在mysql下是否會發生,而不要像我一樣浪費了大量時間去仔仔細細地查看sql的語法,跟蹤源碼,debug,最後發現根本是數據庫的問題。真的,巨坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章