Bonjour à tous,
J'ai cette annotation au dessus d'une méthode dont la transaction est gérée par Spring :
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor=MyClassException.class) public void maMethodeSpring throws MyClassException.class ...
Cette méthode est exécutée dans une boucle. Il peut y avoir des exceptions fonctionnelles dans cette méthode (sur un pas de la boucle), ce qui n'est pas génant pour les autres pas. Mais seulement une fois qu'une exception est lévee, mêmes si tous les autres pas de la boucle se passent bien, le commit est refusé à la fin.Alors vous me voyez venir, comment faire pour ne pas propager un rollback au reste de la boucle.Sachant que je n'ai pas accès au code source de la méthode unitaire levant l'exception.
Voici un exemple :
Que mettre comme annotation sur la méthode principale pour quelle isole les exceptions?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public void maMethodePrincipale(){ ... for (Objet obj : listeObjets){ this.maMethodeSpring(); //Pouvant lever une exception que je ne veux propoger ... } }
Partager