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 :

Exception: Cannot use an EntityTransaction while using JTA


Sujet :

JPA Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 37
    Points
    37
    Par défaut Exception: Cannot use an EntityTransaction while using JTA
    Bonjour,

    Depuis ce matin j'obtiens cette exception (Cannont use an EntityTransaction while using JTA) alors qu'auparavant ce même code marchait.

    Le bout de code en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Query query = em.createQuery("DELETE FROM Reservation r WHERE r.idReservation = ?1");
            query.setParameter(1, id);
            EntityTransaction tx = em.getTransaction();
            tx.begin();
            if (query.executeUpdate() > 0) {
                tx.commit();
                return "Ok";
            }
            tx.commit();
            return null;
    L'exception se déclenche ligne 3

    Avez-vous une idée quand à l'origine du problème ?

    Il arrive parfois qu'en relançant Glassfish le problème disparaisse puis au bout de quatre ou cinq appels au web service le problème revient.

    Merci d'avance pour votre réponse.

  2. #2
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    le Souci est que tu utilises certainement JTA present dans ton fichier de persistence.xml.je supposerai donc tu utilises les EJB.
    Alors si c'est le cas Alors l'obtension de ta transaction
    EntityTransaction tx = em.getTransaction();
    n'est pas adéquate
    tu devrais utiliser par exemple l'objet SessionContext et recupérer la transaction.avec sa méthode getUserTransaction().
    Mais pour faire plus simple tu pourrais juste injecter la transaction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     @Resource
        private UserTransaction uTx;
    Si tu n'utilises pas JTA alors tu devrais vérifier dans ton fichier de persistence.xml et change le mode de gestion de transaction en mettant RESOURCE_LOCAL

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup le problème est maintenant résolu !

    Bonne fin de journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/06/2015, 12h27
  2. Réponses: 5
    Dernier message: 22/12/2011, 02h11
  3. Cannot use an EntityTransaction while using JTA.
    Par pointeur dans le forum Frameworks Web
    Réponses: 1
    Dernier message: 08/12/2010, 14h40
  4. tutoriel : Database.Open-Could not use, file already in use
    Par MARTIN Gérard dans le forum XMLRAD
    Réponses: 2
    Dernier message: 04/05/2005, 11h56

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