Bonjour,
Je dois utiliser le type mapping d'héritage "Une table par classe fille " tel qu'au
chapitre 9.1.2 qui crée une table pour la super classe et une table par classe fille.
Mon problème est que lorsque la table de la classe mère contient déjà un enregistrement du même id (à cause des données antérieurs au mapping d'héritage) que celui j'essaie d'insérer dans une table d'une classe fille j'obtiens cette erreur.
Pourtant ça me semble logique de pouvoir le faire, si la table Employe contient les informations sur les employes, il est logique que les information soit déjà présente à l'ajout d'une instance de la sousclasse repondant répondant qui rajoutera les informations complémentaires dans la table de la sous classe.
Ou encore si j'ai une super classe Employe et les sous-classe Répondant et Demandeur, je voudrais pouvoir avoir la possibilité d'avoir un enregistrement sur un même Employe dans plus d'une table fille qui serait relié à l'info de la table Employe par l'id.
Des idées sur mon erreur ?
Merci pour votre aide,
Philippe
L'ERREUR
Code:
Caused by: java.sql.BatchUpdateException: Duplicate entry 'cv4045' for key 'PRIMARY'
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1693)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1108)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
LE MAPPING
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="employes.Employe" table="employe" lazy="false">
<id name="cip" />
<!--<discriminator column="type" type="string"/>-->
<property name="nom" />
<property name="prenom" />
<property name="titre" />
<property name="telephoneInterne" />
<!--<property name="telephoneInternePref" />-->
<!--<property name="telephoneInterneSuf" />-->
<property name="centreDeCout" />
<property name="descriptionCentreDeCout" />
<property name="descriptionUniteStruct" />
<property name="courriel"/>
<joined-subclass name="repondants.Repondant" table="repondant">
<key column="cip"/>
<property name="groupe"/>
<many-to-one name="typeExpert" column="noTypeExpert" class="typeExperts.TypeExpert" lazy="false"/>
</joined-subclass>
<!--<subclass name="repondants.Repondant" discriminator-value="repondant">
<join table="repondant">
<key column="cip"/>
<property name="groupe"/>
<many-to-one name="typeExpert" column="noTypeExpert" class="typeExperts.TypeExpert" lazy="false"/>
</join>
</subclass>-->
</class>
</hibernate-mapping>