2012-03-07 61 views
12

我有一個服務層的方法,它執行數據庫的更新功能。彈簧框架中的默認隔離級別

@Transactional(propagation = Propagation.REQUIRES_NEW) 
public void update(final Object obj){ 
// 
    } 

現在我想知道什麼是由spring框架設置的這個方法的隔離級別?

我是一個新手到春天,只是想讓自己適應交易。

請分享一些最佳實踐?以及設置隔離級別的方法 - 以避免死鎖,從而阻止同一用戶嘗試從不同瀏覽器更新其記錄。

回答

7

按照docs (Isolation.DEFAULT),它採用

使用底層數據存儲的默認隔離級別。

當你正在使用的@Transactional註釋,我將設置隔離級別有,例如:

@Transactional(propagation=Propagation.REQUIRES_NEW, isolation=Isolation.SERIALIZABLE) 
+0

這是正確的,但可以肯定你真的需要REQUIRES_NEW和序列化。這些通常只需要管理自己的序列。更新的默認值應該沒問題。 – AngerClown 2012-03-07 14:52:58

+0

@ beny23,所以如果我是對的,我的應用程序將使用oracle數據庫設置的默認隔離級別。正確嗎? – challenge 2012-03-11 14:40:26

+1

@challenge是的,我相信是READ COMMITTED ... – beny23 2012-03-12 11:59:13