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 :

Récupération de la clé primaire suite à un commit


Sujet :

JPA Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut Récupération de la clé primaire suite à un commit
    Bonjour,

    J'utilise JPA2.0 pour la gestion de ma couche de persistance sur une base de données Oracle. Je travaille avec une table avec les clés primaires générées automatiquement.
    Pour réaliser l'auto-incrémentation de mes clés primaires, j'ai mis en place une séquence et un trigger sur la base de donnée Oracle.

    Je voudrais récupérer la valeur de la clé primaire après l'ajout d'une ligne dans ma BD.

    J'ai essayé d'utliser les méthodes
    Voici comment est réalisé mon commit()
    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
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("myentitymanager");
    		EntityManager em = emf.createEntityManager();
    		EntityTransaction tx = em.getTransaction();
     
    		Table1 table1= new Table1();
    		table1.setColumn2(515);
     
    		tx.begin();
    		em.persist(table1);
     
    		// em.flush();
    		// em.refresh(table1);
    		tx.commit();
    		System.out.println(table1.getId());
     
    		em.close();
    Savez vous comment récupérer l'id de dernier commit?

    Merci par avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu as bien mappé ton id pour utiliser la séquence automatiquement ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Points : 268
    Points
    268
    Par défaut
    En effet, c'est ce qu'il me manquait. J'ai réglé mon problème en ajoutant les tag suivant à ma clé primaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    @Id
    @SequenceGenerator(initialValue = 1, sequenceName = "S_INC_ID", allocationSize = 1, name = "S_INC_ID_NAME")
    @GeneratedValue(generator = "S_INC_ID_NAME")
    @Column(name = "ID")
    private long id;
    Merci pour ton aide!

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

Discussions similaires

  1. Récupération de noms dans une suite de caractères
    Par jeremy383 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/02/2013, 10h25
  2. Récupération du nom de domaine suite à arnaque
    Par figarojuju dans le forum Domaines
    Réponses: 3
    Dernier message: 27/11/2009, 22h25
  3. [VB.NET] récupération de la clé primaire
    Par anthony_rexis dans le forum Accès aux données
    Réponses: 2
    Dernier message: 18/04/2007, 11h30
  4. Décalage de clé primaire suite à suppression
    Par Marc F dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/07/2006, 17h48
  5. Réponses: 4
    Dernier message: 09/01/2006, 01h24

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