IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Problème de transaction - imbrication de méthodes


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Par défaut Problème de transaction - imbrication de méthodes
    Bonjour à tous,

    Le problème rencontré est de définir une transaction sur une méthode d’un objet tout en conservant son fonctionnement dynamique.

    Pour simplifier le problème nous avons une classe ClassA définissant 3 méthodes method1, method2, méthod3.

    La method1 fait appel à méthod2 et method3 :

    Method1() {
    Method2() ;
    Method3() ;
    }

    Sans l’utilisation des transactions : l’appel de la méthode method1 enchaine bien les appels à méthod2 puis method3. On a bien :

    ClassA.method1()
    ClassA.method2()
    ClassA.method3()

    En positionnant une transaction déclarative uniquement sur method2 - via Spring - le fonctionnement constaté est le suivant :

    Sur une instance ProxyClassA, c’est la method1 du ProxyClassA.method1 qui est sollicitée. Ensuite lors de l’appel à la method2 c’est l’appel à la ClassA.method2 qui est effectué. Finalement on a l’arbre d’appel suivant :



    ProxyClassA.method1()
    ClassA.method2()
    ClassA.method3()


    Au final, la méthode ProxyClass.method2 n’est jamais appelée et donc la transaction n’est jamais activée.

    Comment peut-on avoir l’arbre d’appel suivant (en déclarant une transaction déclarative sur method2) sans modifier le code Java afin de le laisser aussi indépendant que possible de Spring ?

    ProxyClassA.method1()
    ProxyClassA.method2()
    ProxyClassA.method3()

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour et Bienvenu dans nos forums ,
    Pourquoi veux tu le comportement que tu décris ? méthode2, même si elle n'est pas invoquée via le proxy, est bel et bien transactionnelle, vu qu'elle est couverte par méthode1 qui elle est transactionnelle.
    C'est bien ce comportement là que tu veux, non ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/12/2009, 17h49
  2. [Custom Tags] Problème avec une surcharge de méthode
    Par Strab dans le forum Taglibs
    Réponses: 19
    Dernier message: 26/08/2005, 16h34
  3. Problème d'héritage d'une méthode protégée
    Par shenron666 dans le forum C++
    Réponses: 9
    Dernier message: 28/04/2005, 23h17
  4. Encore un petit problème de transaction
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/03/2005, 16h13
  5. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo