2015-10-19 73 views
0

我使用的是CrudRepository,其中註釋的方法爲@Lock。這將導致在行上共享/排斥鎖。底層數據庫是Postgresql 9.4。但有沒有辦法鎖定整個交易表?彈簧數據鎖定

更新: 爲什麼我想鎖定整個表的問題: 考慮一個包含具有單個值(整數)的行的表。每個事務都必須計算表中的值的總和,並將總和作爲新行插入。下一個事務必須再次計算這些值的總和,但現在使用新插入的值。

可能有更好的解決方案,歡迎其他想法。

+0

爲什麼你認爲你需要做的是什麼?鎖定整個桌子通常不是一個好主意,應該只被視爲「最後的手段」 –

+0

是的,我想用它作爲最後的手段。我知道有一些嚴重的表現懲罰。 – Daniel

回答

0

你可以試試這個,當你打開事務:

entityManager.createNativeQuery("LOCK TABLE public.table_name IN 
EXCLUSIVE MODE").executeUpdate(); 

特定課程的PostgreSQL,但你也有特定的問題