2012-03-07 12 views
12

Mam metodę w warstwie usługi, która aktualizuje funkcjonalność do bazy danych.domyślny poziom izolacji w wiosennej wersji językowej

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

teraz chcę wiedzieć, jaki jest poziom izolacji dla tej metody ustalonej przez ramy wiosenne?

Jestem nowicjuszem wiosną, chciałem tylko czuć się komfortowo z transakcji.

Proszę podzielić się najlepszą praktyką? i sposoby ustalania poziomu izolacji - aby uniknąć zakleszczenia i tym samym uniemożliwić temu samemu użytkownikowi próbę aktualizacji swojego rekordu z różnych przeglądarek.

Odpowiedz

7

Według docs (Isolation.DEFAULT), używa

Użyj domyślnego poziomu izolacji bazowego magazynu danych.

Jak używasz @Transactional adnotacji, chciałbym ustawić poziom izolacji nie, np .:

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

Zgadza się, ale mieć pewność, że naprawdę trzeba REQUIRES_NEW i SERIALIZABLE. Są one zwykle potrzebne tylko do zarządzania własnymi sekwencjami. Wartości domyślne powinny być odpowiednie dla aktualizacji. – AngerClown

+0

@ beny23, więc jeśli mam rację, moja aplikacja użyje domyślnego poziomu izolacji ustawionego przez bazę danych oracle. Prawidłowo? – challenge

+1

@challenge tak, i uważam, że to READ COMMITTED ... – beny23

Powiązane problemy