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 :

Obtention de l'ID


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut Obtention de l'ID
    Bonjour

    J'ai une classe Java où je gere une table par JPA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    em = emf.createEntityManager();
    em.getTransaction().begin();
    em.persist(myEntity);
    ...
    Avant de faire le persist, mon entity a son ID à null car il est géré par une séquence.
    Le problème c'est que je voudrais savoir quel est l'ID qui a été généré juste après que le persist soit fait. En effet après l'insertion dans la table j'ai besoin de l'ID pour faire d'autres choses avant de faire un commit.

    Comment faire pour obtenir l'ID généré?

    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 40
    Par défaut
    Bonjour

    Au lieu d'utiliser persist(), essaie d'utiliser merge() qui ne renvoie pas void mais l'instance de l'objet. Avec un peu de chance l'id de l'objet qu'il retourne sera a jour

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Après l'opération persist, as-tu regardé la valeur de l'id dans ton objet ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    Oui, après le persist, j'ai regardé si l'ID était dans l'objet mais il continuait à null...
    je vais regarder avec le merge pour voir ce que ça donne...

    merci

    Citation Envoyé par OButterlin Voir le message
    Après l'opération persist, as-tu regardé la valeur de l'id dans ton objet ?

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu utilises quel serveur et quel JPA ?

    (moi, sur JBoss avec Hibernate, après l'opération persist, l'ID est renseigné)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par pjmorce Voir le message
    Oui, après le persist, j'ai regardé si l'ID était dans l'objet mais il continuait à null...
    je vais regarder avec le merge pour voir ce que ça donne...

    merci
    l'ID sera initialisé lors de l'INSERT…
    qui lui est exécuté quand l'ORM le juge nécessaire ou lors d'un flush ou au plus tard lors du COMMIT...

    persist ou merge ne provoquent pas nécessairement d'exécution directe d'instructions SQL…

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Par défaut
    J'utilise toplink essentials...

    Citation Envoyé par JeitEmgie Voir le message
    l'ID sera initialisé lors de l'INSERT…
    qui lui est exécuté quand l'ORM le juge nécessaire ou lors d'un flush ou au plus tard lors du COMMIT...

    persist ou merge ne provoquent pas nécessairement d'exécution directe d'instructions SQL…

Discussions similaires

  1. [VB]obtention de valeur de pixel
    Par tuonela dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/02/2006, 09h06
  2. [PHPLIB] Obtention d'une erreur undefined index
    Par duplo dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 16/02/2006, 15h48
  3. Obtention du code d'erreur natif SQL
    Par carjo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/01/2006, 21h32
  4. obtention du jour d'une date
    Par micknic dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/11/2005, 16h16
  5. Obtention de l'uid d'une Interface
    Par Trap D dans le forum Windows
    Réponses: 7
    Dernier message: 23/09/2005, 14h25

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