2012-03-07 7 views
12

Ho un metodo nel livello di servizio che esegue la funzionalità di aggiornamento nel database.livello di isolamento predefinito nella struttura di primavera

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

ora voglio sapere qual è il livello di isolamento per questo metodo impostato dalla struttura di primavera?

Sono un novizio per la primavera, volevo solo sentirmi a mio agio con le transazioni.

Si prega di condividere alcune buone pratiche? e modi per impostare il livello di isolamento - per evitare situazioni di stallo e quindi impedire allo stesso utente di aggiornare il suo record da diversi browser.

risposta

7

Secondo la docs (Isolation.DEFAULT), utilizza

utilizzare il livello di isolamento predefinito dell'archivio dati sottostante.

Come si utilizza il @Transactional annotazione, vorrei impostare il livello di isolamento lì, ad es .:

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

Questo è corretto, ma essere sicuri si ha realmente bisogno REQUIRES_NEW e SERIALIZABLE. Questi di solito sono necessari solo per qualcosa come gestire le tue sequenze. Le impostazioni predefinite dovrebbero andare bene per un aggiornamento. – AngerClown

+0

@ beny23, quindi se ho ragione la mia applicazione userà il livello di isolamento predefinito impostato dal database di Oracle. Corretta ? – challenge

+1

@challenge sì, e credo che sia READ COMMITTED ... – beny23

Problemi correlati