Foros del Web » Programación para mayores de 30 ;) » Java »

Transacción con spring durante un bucle

Estas en el tema de Transacción con spring durante un bucle en el foro de Java en Foros del Web. Hola amigos, les comento que actualmente me encuentro con un problema que les comento a continuación esperando su ayuda. tengo el siguiente método configurado para ...
  #1 (permalink)  
Antiguo 25/09/2013, 10:42
 
Fecha de Ingreso: septiembre-2013
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
Mensaje Transacción con spring durante un bucle

Hola amigos, les comento que actualmente me encuentro con un problema que les comento a continuación esperando su ayuda.

tengo el siguiente método configurado para utilizar transacciones de spring desde la capa de negocio.

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void guardarProceso(List lista, Object objeto1,Object objeto2){
guardar(objeto1);
guardar(objeto2);

Kardex kardex = null;
for(Object entidad; lista){
kardex = find(entidad);
actualizar(kardex);
}
}

El problema es que al realizar el bucle for los dos objetos que se enviaron a guardar previamente y que están dentro de la transacción se hacen commit y se los puede ver en la base incluso antes de terminar el método (DEBUG). He realizado varias pruebas entre esas probar con otras entidades realizando la consulta y actualizando la entidad que me retorna dentro del for tratando de descartar que sea por el mapeo o por el tema de BDD y el problema persiste. Al inicio pensé que el problema era por la tabla, el mapeo, etc. Pero en realidad es cuando se realiza la acción descrita dentro de un bucle.

Ademas que si por algún motivo existiera un error dentro del bucle o posterior a este, como se realizo el commit esos datos se quedan inconsistente.

Investigando encontre que una solución para este problema es la de consultar previamente la lista y pasarla antes de iniciar la transacción. La probe y funciona pero para mi caso no es viable ya que el proceso en realidad es mucho mas complicado que el que les describo con fines de simplicidad.

Les agredezco mucho me pudieran ayudar con este tema...

Etiquetas: bucle, durante, spring
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:48.