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

JPA Java Discussion :

Question sur TransactionAttributeType


Sujet :

JPA Java

  1. #1
    Membre expérimenté
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Par défaut Question sur TransactionAttributeType
    Bonjour,

    je fais actuellement un projet Entreprise sous Netbeans, celui-ci représente le fonctionnement d'une banque. J'ai donc des entités Banque et Compte, ainsi que ma façade qui possède les méthodes suivantes :

    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
     
        // ajoute une banque et la rend persistante via le manager de persistance.
        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
        public Banque addBanque(Banque banque);
     
        // ajoute un compte à la banque préalablement synchronisée avec la base
        // retourne la banque fusionnée avec la base
        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
        Banque openCompte(Banque banque, String ownerName, int accNum);
     
        // retourne la balance d’un compte
        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
        int getBalance(int accountNumber);
     
        // augmente la balance du compte du montant spécifié (dépôt)
        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
        int deposit(int accountNumber, int amount);
     
        // diminue la balance du compte du montant spécifié (retrait)
        // ou envoie une exception si le montant est strictement supérieur à la balance.
        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
        int withdraw(int accountNumber, int amount);
     
        // augmente la balance du compte de destination
        // diminue celle du compte source (virement)
        @TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
        public int transfert(int accountSource, int accountDest, int amount);
    Donc les méthodes sont vraiment pas très dure, juste je ne comprends pas ce qu'il faut que je mette pour les TransactionAttributeType. Ici j'ai tout mis à REQUIREs_NEW mais je ne pense pas que ce soit ce qu'il faut faire.

    Je pense on peut réussir à faire "boger" la méthode transfert par exemple (qui utilise à la suite les fonctions withDraw et deposit) mais j'ai essayé tous les types de transactions et je n'y arrive pas.

    si jamais vous avez une idée ou un bon tuto qui explique les différentes transactions, ça m'intéresserais beaucoup.
    Merci d'avance !

  2. #2
    Membre émérite
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Par défaut
    Bonjour,

    La politique de transaction définie la manière dont le conteneur de l'ejb doit gérer la transaction du service (méthode) qui doit être executé.

    Il s'agit de determiner quelle transaction utiliser ! une nouvelle ? reprendre celle de l'appelant ?

    Les différentes politiques permettent les combinaisons suivantes

    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
     
    ========================================================
    Type de Tx   --   Tx de l appelant   --   Tx de l appelé
    ========================================================
    Required     --   Aucune             --   TxA
    Required     --   TxA                --   TxA
    ========================================================
    Supports     --   Aucune             --   Aucune
    Supports     --   TxA                --   TxA
    ========================================================
    NotSupported --   Aucune             --   Aucune
    NotSupported --   TxA                --   Aucune
    ========================================================
    RequiresNew  --   Aucune             --   TxA
    RequiresNew  --   TxA                --   TxB
    ========================================================
    Mandatory    --   Aucune             --   Erreur
    Mandatory    --   TxA                --   TxA
    ========================================================
    Never        --   Aucune             --   Aucune
    Never        --   TxA                --   Erreur
    ========================================================
    Cela permet de définir la portée de la transaction d'un traitement métier et de définir précisément la portée de ce qui doit être rollbacké en cas d'erreur.

    RequiresNew indique que tu démarres un service utilisant sa propre transaction. Si il y a un problème et que tu décides d'annuler la transaction (setRollBackOnly), l'appelant ne sera pas impacté.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 45
    Par défaut
    Salut,

    C'est juste pour te remercier divxdede car personne ne l'a fait, tu viens de résoudre et d’éclaircir mes problèmes avec parfait clarté les types de Transaction !

Discussions similaires

  1. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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