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 :

persister un objet et retourner sa référence


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut persister un objet et retourner sa référence
    Bonjour ma question est comme suit :
    Je veux savoir comment faire pour retourner l'ID de l'objet que je viens d'inserer dans ma base de données avec hibernate.

  2. #2
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Par défaut
    Citation Envoyé par cyclopsnet Voir le message
    Bonjour ma question est comme suit :
    Je veux savoir comment faire pour retourner l'ID de l'objet que je viens d'inserer dans ma base de données avec hibernate.
    monNouvelObjet.getId() ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut
    dans mon insertion j'utlise session.save(objet) comment faire pour que cette méthode me retourne l'ID de l'insertion

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Par défaut
    Salut,

    en faisant

  5. #5
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut
    je me suis mal exprimer je pense ma demande c'est comment retourner l'id généré par la base de données quand je fait une insertion avec la méthode save() d'hibernate

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Par défaut
    en faisant un save(), hibernate va remplir le champ correspondant à la clé primaire dans ton objet (enfin si ton mapping est déclaré de cette façon). Donc pour avoir l'id, il te suffit d'accéder à ce champ

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104

  8. #8
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut
    Voila ma méthode pour l'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public int saveEtudiant(Etudiant etudiant) {
            try {
                    org.hibernate.Transaction tx = session.beginTransaction();
    				 session.save(etudiant);
                                     tx.commit();
    				return etudiant.getEtudiantId();
    				}
    				catch(Exception e) {
                        e.printStackTrace();
                        return 0;
     
    				}
        }
    il me dise que la session est close .

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 104
    Par défaut
    ça c'est un autre problème. A quel moment ouvres tu la session ? de quelle manière ?

  10. #10
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Session session = null;
     
        public EtudiantDaoImp() {
            this.session = NewHibernateUtil.getSessionFactory().getCurrentSession();
        }

  11. #11
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Par défaut
    Ta session est fermée par le commit de ta transaction.

    Si tu veux gérer l'ouverture et la fermeture toi-même tu dois faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public EtudiantDaoImp() {
            this.session = NewHibernateUtil.getSessionFactory().openSession();
    }
    Pour ceux qui connaissent, quels autres inconvénients a cette méthode que le "simple" fait de devoir fermer la session manuellement ?

    Edit: Je ne sais pas si tu fais du J2SE ou du J2EE mais je ne pense pas que ma solution soit la meilleure si tu fais du J2EE

Discussions similaires

  1. Persister mes objets métiers modifés
    Par n!co dans le forum Hibernate
    Réponses: 8
    Dernier message: 11/09/2006, 18h26
  2. [Conception] Persistance d'objets
    Par Regis.C dans le forum Persistance des données
    Réponses: 5
    Dernier message: 05/06/2006, 22h28
  3. Persistance des objets : comment ?
    Par SteelBox dans le forum C++
    Réponses: 1
    Dernier message: 28/11/2005, 21h47
  4. Réponses: 6
    Dernier message: 28/09/2005, 11h30
  5. [Struts][DynaActionForm et persistance des objets]
    Par jcos dans le forum Struts 1
    Réponses: 4
    Dernier message: 22/12/2004, 09h15

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