2010-11-26 7 views
6

Estoy usando Spring 3 para administrar transacciones de base de datos. Siempre que se presenta una excepción, capto la excepción y devuelvo el mensaje correspondiente. Pero cuando Spring confirma la transacción, la excepción vuelve a aparecer y se envuelve en un org.springframework.dao.DataIntegrityValidationException. ¿Cómo puedo manejar esa excepción? ¿Debo usar interceptores o algo más? ¿Alguien ha tenido este problema anteriormente?incapaz de atrapar DataIntegrityViolationException con la transacción envuelta

Gracias de antemano

Respuesta

9

Si los límites de la transacción están a su capa de servicios (si lo tiene, que debe), entonces usted debe capturar la excepción fuera del límite. La forma en que Spring funciona es si una excepción se propaga fuera del límite de la transacción, la transacción se retrotrae. Al atrapar la excepción, estás deteniendo ese proceso, que probablemente no quieras.

Los interceptores son una buena forma de manejar la excepción fuera del límite de la transacción.

+0

Ahora veo dónde está mi error. Gracias – Neuquino

Cuestiones relacionadas