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

Transacciones Spring Hibernate

Estas en el tema de Transacciones Spring Hibernate en el foro de Java en Foros del Web. Buenas a todos!! Tengo un problemilla al ejecutar una transacción. Mi problema es que tengo un metodo java en el que realizao unos DELETE y ...
  #1 (permalink)  
Antiguo 29/06/2011, 06:51
 
Fecha de Ingreso: marzo-2011
Mensajes: 6
Antigüedad: 13 años, 1 mes
Puntos: 0
Transacciones Spring Hibernate

Buenas a todos!!

Tengo un problemilla al ejecutar una transacción. Mi problema es que tengo un metodo java en el que realizao unos DELETE y luego un INSERT, pero al ejecutarlo, hibernate me esta ejecutando primero el INSERT y luego los DELETES, necesito que me haga primero los DELETES ya que el insert puede contener un valor de las filas que voy a eliminar, y como la columna es unica pues me salta una exception y no me lo hace...

el método que realiza los DELETES y el INSERT es:

Código:
	public boolean mergeValues(List<Geography> geographies, Geography geography) throws MeServiceException {
		try {
			int eliminadas = 0;
			if (geographies != null && geographies.size() > 0) {
				for (Geography g : geographies) {
					boolean eliminada = geographyDAO.delete(g);
					if (eliminada) {
						eliminadas++;
					}
				}
			} else {
				eliminadas = 0;
			}
			int guardado = geographyDAO.save(geography);
			if (eliminadas >= 2 && guardado == 1) {
				return true;
			} else {
				return false;
			}
		} catch (ConstraintViolationException ex) {
			throw new MeServiceConstraintViolationException(ex);
		} catch (Exception ex) {
			throw new MeServiceException(ex);
		}
	}
Las transacciones las tengo configuradas de la siguiente forma:

Código XML:
Ver original
  1. <aop:config>
  2.         <aop:pointcut id="geographyListMethods" expression="execution(* es.unav.fondospersonales.service.administracion.GeographyListService.*(..))" />
  3.         <aop:advisor advice-ref="geographyTxAdvice" pointcut-ref="geographyListMethods" />
  4.     </aop:config>
  5.  
  6.     <tx:advice id="geographyTxAdvice" transaction-manager="transactionManager">
  7.         <tx:attributes>
  8.             <tx:method name="get*" read-only="true" />
  9.             <tx:method name="merge*" propagation="REQUIRED" rollback-for="MeServiceException" />
  10.             <tx:method name="remove*" propagation="REQUIRED" rollback-for="MeServiceException" />
  11.             <tx:method name="update*" propagation="REQUIRED" rollback-for="MeServiceException" />
  12.             <tx:method name="add*" propagation="REQUIRED" rollback-for="MeServiceException" />
  13.         </tx:attributes>
  14.     </tx:advice>

Alguien sabe porque me hace primero los INSERTS??

Muchas gracias!!

Etiquetas: hibernate, spring, transacciones
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 09:04.