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

Hibernate Java Discussion :

[Hibernate] Attraper les exceptions lors de transactions


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Par défaut [Hibernate] Attraper les exceptions lors de transactions
    Salut à tous,

    J'utilise, dans le cadre d'une application java, des classes Persistor, qui ne servent qu'à enregistrer les objet qu'on leur passe dans la base de données.

    Mais ma base est en fait sur deux serveurs. Après quelques recherche, j'ai décidé d'appliquer une méthode dite du "commit à 2 phases" pour l'enregistrement des données.

    Une méthode basique d'un Persistor est donc dans ce style:

    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
     
        public void save (Object o) throws PersistException {
     
            try {
     
                Customer c = (Customer) o;
     
                if (c.getId() != null) {
                    this.updateLocal(c);
                    this.updateRemote(c);
                } else {
                    this.saveLocal(c);
                    this.saveRemote(c);
                }
            } catch (ClassCastException cce) {
                throw new PersistException("Objet à sauver != Customer");
            } catch (Exception e) {
                tx.rollback();
                try {
                    con.rollback();
                } catch (SQLException e1) {
                    throw new PersistException("Erreur lors du rollback distant." + e);
                }
                throw new PersistException("Erreur lors de la sauvegarde." + e);
            }
        }
    Le problème c'est que je ne sais pas comment attraper les exception d'Hibernate! Les méthode classiques style session.save/update/delete ne lancent aucune exception…
    D'un autre côté, dans la doc, il est bien fait état d' HibernateExceptions, qui serait un wrapper pour toutes les exceptions qui pourraient se produire durant les transactions.

    Qqun sait comment attraper ces exceptions?

    Merci !

    EDIT: modifié le titre, c'était pas top…

  2. #2
    Membre chevronné
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Par défaut Re: [Hibernate] Attraper les exceptions lors de transactions
    Citation Envoyé par seb.ch
    Après quelques recherche, j'ai décidé d'appliquer une méthode dite du "commit à 2 phases" pour l'enregistrement des données.
    C'est à dire ? Tu utilises JTA, non ?

    Citation Envoyé par seb.ch
    Les méthode classiques style session.save/update/delete ne lancent aucune exception…
    et HibernateException, tu l'oublies pas un peu vite ? Vérifie dans la javadoc mais je ne pense pas me tromper.

  3. #3
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Par défaut Re: [Hibernate] Attraper les exceptions lors de transactions
    Citation Envoyé par dlemoing
    C'est à dire ? Tu utilises JTA, non ?
    JTA? Je crois pas… J'utilise Hibernate et ses composants (Session et Transaction) pour la base locale et des Connection/Statements "classiques" de Java, du package java.sql pour les transactions à la base distante.

    Citation Envoyé par dlemoing
    et HibernateException, tu l'oublies pas un peu vite ? Vérifie dans la javadoc mais je ne pense pas me tromper.
    Les HibernateExceptions… j'ai lu des infos sur ces exceptions, mais aucune des méthodes que l'on appelle lors d'une transaction ne lance d'exceptions… les session.update/delete/save ne lancent rien…

    Il y a peut être quelque chose que je n'ai pas compris à Hibernate…*je suis en train d'éplucher la doc…*mais c'est quand même étrange que le commit d'une transaction ne puisse pas lancer d'exception…

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut Re: [Hibernate] Attraper les exceptions lors de transactions
    Citation Envoyé par seb.ch
    Les HibernateExceptions… j'ai lu des infos sur ces exceptions, mais aucune des méthodes que l'on appelle lors d'une transaction ne lance d'exceptions… les session.update/delete/save ne lancent rien…
    dlemoing a raison fais un try catch avec un HibernateException, pour les methodes save, update et delete, passe en parametre une requete erronnee et tu vas voir si tu n as pas d'exception!!!

  5. #5
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 27
    Par défaut
    Ok, merci beaucoup de vos explications :-)

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

Discussions similaires

  1. [Data] Personnaliser les Exceptions SQL (issue d'hibernate)
    Par fforet dans le forum Spring
    Réponses: 3
    Dernier message: 03/10/2007, 11h46
  2. [Exceptions]Attraper toutes les exceptions
    Par willowII dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2006, 19h41
  3. [Hibernate 3.0] Erreur JDBC lors de transaction
    Par julienOriano dans le forum Hibernate
    Réponses: 2
    Dernier message: 06/07/2006, 12h23
  4. Analyser les exceptions survenues lors de l'exécution
    Par cedricgirard dans le forum Langage
    Réponses: 10
    Dernier message: 13/10/2005, 15h22

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