bonjour
je reçois ce message d'erreur quand j'essai de persister un objet personne.
Code:
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:
<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 !