-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Mapping d'héritage "Une table par classe fille"
PostPosted: Tue May 19, 2009 10:12 am 
Newbie

Joined: Fri May 15, 2009 3:54 pm
Posts: 6
Bonjour,

Je dois utiliser le type mapping d'héritage "Une table par classe fille " tel qu'auchapitre 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>


Top
 Profile  
 
 Post subject: Re: Mapping d'héritage "Une table par classe fille"
PostPosted: Mon May 25, 2009 8:08 am 
Beginner
Beginner

Joined: Thu Jun 30, 2005 1:04 pm
Posts: 26
Bonjour,

L'héritage est peut être pas la bonne solution.
Perso j'envisagerai de faire un lien de composition, une one-to-one avec partage d'id où l'id maitre serait dans la table Employe

Voila si ça peut aider


Top
 Profile  
 
 Post subject: Re: Mapping d'héritage "Une table par classe fille"
PostPosted: Wed May 27, 2009 3:53 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
hello
Francky a raison, grosse erreur de conception dans ton modèle.

@+
Anthony

_________________
Anthony,
Get value thanks to your skills: http://www.redhat.com/certification


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.