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 :

[Debutant] Problème d'ID déjà existant à l'ajout


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Par défaut [Debutant] Problème d'ID déjà existant à l'ajout
    Bonjour,

    je continue avec mes problèmes sur Hibernate (le pire c'est que les comprends mais je n'arrive pas à les résoudre). Je me suis amusé à créer un "Abonne" avec un ID=1 et à la supprimer. L'ajout et la suppression dans la base se passent sans problème. Par contre, après cela je veux de nouveau ajouter un "Abonne" avec ID=1 (je me suis dit c'est bon puisqu'il n'est pas dans la base) mais ça ne fonctionne pas, j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [hibernate.Abonne#1]
    Ce que je comprends c'est que mon objet Abonne d'ID=1 est toujours persistant pour ma session courante, je ne peux donc pas créer un nouveau objet avec cet ID même si dans ma base il n'apprait plus. Comment faire pour éviter le problème à l'ajout ? Dois-je fermer et rouvrir une session hibernate ou comment puis-je "vider" cet objet persistant ?

    Merci de votre aide

    PS:Sur ce, bon ap' je vais manger.

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Peut-être avec un session.evict(tonObjet);

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Par défaut
    Merci pour ta réponse mais malheureusement ça ne change rien.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Par défaut
    j'ai essayé le flush() également mais même erreur

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Cet identifiant, tu le gères toi-même ou il est auto-incrément, c'est-à-dire géré par la base de données? auquel cas, la base ne voudrait surement pas réaffecter la même valeur d'identifiant même si l'entité a été supprimé.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Mars 2005
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2005
    Messages : 363
    Par défaut
    Merci. Je ne pense pas que ç avenait de la base car si je redémarrais mon serveur (et donc ma session hibernate), il acceptait mon ID. Au final, j'ai passé mon ID en auto-increment dans MySQL et generator en native dans mon fichier de mapping. Comme ça je ne m'embête plus avec mes ID. Ce que je trouve juste dommage dans ce système d'auto-incrémentation c'est qu'il ne fait jamais machine arrière autrement dit les IDs supprimés ne seront plus jamais utilisés (dans mon cas ce n'est pas gênant car pas bcp d'enregistrements)

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

Discussions similaires

  1. [Debutant] Problème d'ajout de la lib ssh2 pour PHP sous RH ES 4
    Par Jonathan.b dans le forum RedHat / CentOS / Fedora
    Réponses: 3
    Dernier message: 06/11/2007, 14h51
  2. [DX9] [Debutant] Problème de transparence :(
    Par SekYo dans le forum DirectX
    Réponses: 5
    Dernier message: 10/09/2004, 14h19
  3. [Debutant] Problème de sécurité dans un applet
    Par peaceinpal dans le forum Applets
    Réponses: 3
    Dernier message: 09/09/2004, 20h56
  4. [debutant]Problèmes
    Par BibiGmi dans le forum OpenGL
    Réponses: 2
    Dernier message: 05/03/2004, 14h00
  5. [Debutant] Problème du linker [Dev-c++4]
    Par Macdir dans le forum Dev-C++
    Réponses: 3
    Dernier message: 30/05/2003, 20h50

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