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 :

[JPA/Hibernate] Récupération Id


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Par défaut [JPA/Hibernate] Récupération Id
    Bonjour,

    Voilà mon problème :

    Après l'insertion d'un objet dans ma base de données SQL Server, j'aimerai récupéré l'ID généré par une stratégie jpa/hibernate.
    - (@GeneratedValue(strategy = GenerationType.IDENTITY) )
    Le problème, c'est que j'ai tout essayer, mais rien ne fonctionne, j'ai essayer d'insérer l'objet avec la fonction merge() puisqu'elle retourne l'objet créer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    		TScheme s = null;
    		if (tScheme != null) {
    			s = em.merge(tScheme);
    		}
    		em.flush();
    		LOG.info("Id Scheme 2 = " + s.getId().toString());
    Le log me donne toujours un id égale un 0.

    Ensuite, j'ai même essayer avec la méthode persist() et une méthode de reload mais en vain ...

    Est-ce que je dois configurer autre chose ? mon fichier de persistence.xml ?


    Par avance, merci!

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Est-ce que ton driver supporte cette fonction ?
    Ce n'est pas le cas pour les drivers Oracle par exemple. Pour SQL Server je ne sais pas.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Par défaut
    Et comment j'utilise cette fonction si j'utilise Hibernate ?

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Tu ne devrais pas avoir à utiliser cette fonction mais Hibernate si.
    Si Hibernate ne peux utiliser cette fonction, il n'a pas les moyens de setter l'id de ton entité.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 43
    Par défaut
    Je sais pas si Hibernate peut utiliser cette fonction, comment puis-je le savoir ?

    Tu me parles aussi de "setter" mon id, mais moi je veux seulement le récupérer pour l'insérer autre part.
    En faite, mon seul but est de récupéré l'ID après l'insertion ... et de le réinsérer dans une table !!!

    Je vais essayer de m'informer si Hibernate utilise cette fonction ..

    Merci

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Sauf opération mystique Hibernate utilise sûrement cette fonction lorsque tu mets IDENTITY en générateur.

    La question est "Est-ce que cette méthode fonctionne avec le driver SQL Server que tu utilises ?"
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

Discussions similaires

  1. jpa hibernate eclipse 3.2.2
    Par lamnaourS dans le forum JPA
    Réponses: 5
    Dernier message: 15/07/2009, 18h07
  2. [Data] Spring + JPA (hibernate) + Tomcat
    Par balteo dans le forum Spring
    Réponses: 1
    Dernier message: 19/11/2007, 12h06
  3. [JPA / Hibernate] Cascade qui ne cascade pas !
    Par dazz_x dans le forum Persistance des données
    Réponses: 1
    Dernier message: 11/09/2007, 14h35
  4. JPA / Hibernate.
    Par Ho(c)ine. dans le forum Persistance des données
    Réponses: 2
    Dernier message: 23/08/2007, 16h39

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