Bonjour,
j'utilise Spring et je veux externaliser une methode de classe pour gerer differemment les transaction.
Au d�part voici mon code
Ce code annule toute la transaction et rien n'est stock� en base. Donc je decide d'utiliser @Transactional(propagation= Propagation.REQUIRES_NEW).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 @Transaction public class A { public List<Dto> methodA(...) { for (.............) { methodB(...); } } public Dto methodB(...) { ..... if (...) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } .... } }
Pour que �a marche, JE DOIS externaliser la m�thode methodB(...) dans une autre classe.
Et �a marche
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 @Transaction public class B { @Transactional(propagation= Propagation.REQUIRES_NEW) public Dto methodB(...) { ..... if (...) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } .... } } @Transaction public class A { @Autowire B instanceB; @Transactional(propagation = Propagation.REQUIRED) public List<Dto> methodA(...) { for (.............) { instanceB.methodB(...); } } }
Mais je suspecte qu'il y a une erreur de design avec cette m�thode. Je ne sais pas le designer d'une autre mani�re.
Pouvez vous me dire comment faire (probablement un autre DESIGN PATTERN)
Partager