2010-11-26 3 views
6

J'utilise Spring 3 pour gérer les transactions de base de données. Chaque fois qu'une exception est déclenchée, j'attrape l'exception et renvoie le message correspondant. Mais lorsque Spring valide la transaction, l'exception est à nouveau levée et enveloppée dans un org.springframework.dao.DataIntegrityValidationException. Comment puis-je gérer cette exception? devrais-je utiliser des intercepteurs ou autre chose? Quelqu'un at-il déjà eu ce problème avant?impossible d'intercepter DataIntegrityViolationException avec la transaction enveloppée

Merci à l'avance

Répondre

9

Si vos limites de transaction sont à votre couche de service (si vous en avez un, que vous devriez), vous devez attraper l'exception en dehors de la frontière. La manière dont Spring fonctionne est si une exception fait une bulle en dehors des limites de la transaction, la transaction est annulée. En attrapant l'exception, vous arrêtez ce processus, que vous ne voulez probablement pas.

Les intercepteurs sont un bon moyen de gérer l'exception en dehors des limites de la transaction.

+0

Maintenant, je vois où est mon erreur. Merci – Neuquino

Questions connexes