2012-03-07 8 views
12

Tengo un método en la capa de servicio que hace la funcionalidad de actualización a la base de datos.nivel de aislamiento predeterminado en el marco de primavera

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

ahora quiero saber cuál es el nivel de aislamiento para este método establecido por Spring Framework?

Soy un novato en la primavera, solo quería ponerme cómodo con las transacciones.

Por favor, comparta algunas de las mejores prácticas? y formas de establecer el nivel de aislamiento: para evitar un interbloqueo y evitar así que el mismo usuario intente actualizar su registro desde diferentes navegadores.

Respuesta

7

De acuerdo con la docs (Isolation.DEFAULT), se utiliza

utilizar el nivel de aislamiento predeterminado del almacén de datos subyacente.

Como está utilizando la anotación @Transactional, que establecería el nivel de aislamiento allí, por ejemplo .:

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

Eso es correcto, pero asegúrese de que realmente necesita REQUIRES_NEW y SERIALIZABLE. Por lo general, solo se necesitan para algo como administrar tus propias secuencias. Los valores predeterminados deberían estar bien para una actualización. – AngerClown

+0

@ beny23, así que si estoy en lo cierto, mi aplicación usará el nivel de aislamiento predeterminado establecido por la base de datos Oracle. ¿Correcto? – challenge

+1

@challenge sí, y creo que se LEA COMPROMETIDO ... – beny23

Cuestiones relacionadas