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 :

probleme unsaved transient


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par défaut probleme unsaved transient
    bonjour
    je reçois ce message d'erreur quand j'essai de persister un objet personne.

    org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: com.sif.intranet.model.Personne; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.sif.intranet.model.Personne
    org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:657)
    org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:413)
    org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:363)
    org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:595)
    com.sif.intranet.dao.impl.PersonneDAO.createPersonne(PersonneDAO.java:17)
    com.sif.intranet.services.impl.PersonneServiceImpl.addPersonne(PersonneServiceImpl.java:20)
    com.sif.intranet.actions.user.UserAction.register(UserAction.java:80)....
    mon fichier de mapping est le suivant:

    Code xml : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <hibernate-mapping>
        <class name="com.sif.intranet.model.Personne" table="personne">
            <id name="persId" type="java.lang.Integer">
                <column name="PersId" />
                <generator class="identity" />
            </id>
            <property name="nom" type="java.lang.String">
                <column name="Nom" length="20" not-null="true" />
            </property>
            <property name="prenom" type="java.lang.String">
                <column name="prenom" length="20" not-null="true" />
            </property>
     
     
            <many-to-one name="superieur" class="com.sif.intranet.model.Personne" cascade="none" not-null="false" >
            </many-to-one>
     
            <one-to-one name="user" class="com.sif.intranet.model.User" property-ref="personne" />
     
            <set name="subalternes" inverse="true" cascade="none"   >
                   <key column="superieur" not-null="false" />
                   <one-to-many class="com.sif.intranet.model.Personne" />
              </set> 
     
     </class>
    </hibernate-mapping>

    et le probleme se trouve entre un objet personne et un objet superieur quand ce dernier est égal à null, les deux objets sont de la même classe, malgré que j'utilise : not-null="false" hibernate recherche le superieur et çà pose probleme quand ce dernier est égal à null.

    Merci pour votre aide !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par défaut ????
    à l'aide... je suis bloqué à cause de ça !!!!!!!!!!!!!!!!!!!!!!!

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Je doute vraiment que le problème soit le supérieur null ....
    Le message normalement est assez clair, il te dit que ton objet Personne référence un autre objet (Personne ou User) qui n'est pas sauvegardé en base ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 105
    Par défaut j'ai trouvé !!!
    Merci chtig pour ta reponse,
    je viens de trouver la solution, en fait hibernate instancie un nouvel objet "superieur" à chaque creation d'un nouvel objet "personne" meme en indiquant not-null="false" qui concerne en fin de compte que l'identificateur de l'objet en question et non pas l'objet lui même, car bizarement, le ID du superieur == null alors que le superieur != null !!!!!! donc j'ai dus rajouter la ligne suivante avant la création d'un objet "personne" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (null !=pers.getSuperieur() && null==pers.getSuperieur().getPersId()) 
                  pers.setSuperieur(null);   
    this.personDAO.createPersonne(pers);

    et le tour est joué !!!!

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

Discussions similaires

  1. [Mapping] object references an unsaved transient instance - save the transient
    Par chacalpuant1987 dans le forum Hibernate
    Réponses: 21
    Dernier message: 20/03/2014, 17h38
  2. [EJB3 Entity] Probleme synchro avec Transient/EJB
    Par drim dans le forum Java EE
    Réponses: 6
    Dernier message: 12/12/2006, 17h21
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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