en référence à cela : http://blog.developpez.com/djo-mos?t...nage_par_sprin
Donc ma première question sur ce billet :
Et une première réponse :Après plusieurs testes et péripéties j'ai réussi à faire tourner quelques chose, par contre il y a quelque chose que je ne comprend c'est pourquoi dans mon service, annoté avec @service les méthode annotés avec @transactionale ne sont pas prises en comptes, il faut que je mette cette annotation au niveau de l'implémentation de mon dao...
Auriez vous des informations par rapport à cela ?
En fait, il est possible d'utiliser @TRansactional sur les interfaces, mais il faut que tu utilises les DynamicProxy du JDK, au lieu du proxying complet offert par les libs comme cglib, or, le proxying du JDK est très limité" et n'est pas vraiment utile en réalité.
Donc, c'est pour cela que ça ne marche pas dans ton cas: car Spring utilise cglib pour le proxying des classes.
Pour ce cas, la limitation vient du fait que les annotations ne sont pas héritables (de par leur définition), donc, la classe proxiée ne voit pas les annotations de l'interface.
Donc en fait je n'ai pas tout saisi dans cette affaire, on me propose de mettre le @Transactional au niveau des interfaces mais cela utilise la lib de la jdk et non celle de cglib (proxying complet)... OK jusque là ça va...
Dans ce cas là par contre je ne vois pas la différence, quel serait le meiux à faire alors ?
Sachant que j'ai une méthode de mon service qui effectue plusieurs opérations sur la base de donnée. Donc j'aurai voulu englober cette méthode comme transaction et non uniquement les différentes méthodes de mes DAO appelées pour ensuite éventuellement effectuer un rollback sur toute la transaction par exemple... Ou sinon j'effectue à la main de rollback ?
Quelle serait la meilleure méthode dans ce cas ?
PS : Je suis en environnement J2SE uniquement.
merci d'avance.
Partager