Salut à tous
considérons par exemple ce bloc de code
En exécutant la méthode "myMethod()" les méthodes "myMethod1()" et "myMethod2()" ne vont pas s’exécuter dans le contexte des transactions définies (dans notre cas "requireNew"). Pour cela, il faudrait extraire la méthode "myMethod()" dans une autre classe.
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 @statefull @Namer class MyClass extends IMyclass{ @TransactionAttribute(requireNew) public void myMethod1(){ ... } @TransactionAttribute(requireNew) public void myMethod2(){ ... } public void myMethod(){ myMethod1(); myMethod2(); } }
Logiquement la méthode "myMethod()" doit se trouver dans la classe "MyClass". Mais à cause d'un problème purement technique ( exécution des transactions), je me trouve obligé de la placer dans une classe "artifcielle" qui n'a aucune signification "métier" et qui est utiliser juste pour contourner un problème technique. Connaissez vous une façon plus élégante de résoudre ce problème? merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class ArtificialClass { @Inject Myclass myClass; public void myMethod(){ myClass.myMethod1(); myClass.myMethod2(); } }
Partager