-->
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.  [ 1 post ] 
Author Message
 Post subject: polymorphisme avec une association entre classe fille
PostPosted: Mon Nov 26, 2007 7:39 am 
Newbie

Joined: Mon Nov 26, 2007 6:15 am
Posts: 2
Je suis débutant en hibernate et je veu mapper un heritage entre plusieurs classes, voici mon cas:
j'ai une classe mère Typedico avec trois classe fille Groupe, Composant, Service. la classe composant peut contenir plusieurs Groupe et Service, le type d'heritage choisie est une table par sous-classe
le code de la classe Typedico


Code:
<hibernate-mapping package="com.myapp.exploreoffre.javabeans" default-lazy="true">
    <class name="Typedico" table="typedico" dynamic-update="true" dynamic-insert="true">
        <id name="typedicoid" column="typedicoid" unsaved-value="0">
            <generator class="sequence">
                <param name="sequence">serie</param>
            </generator>
        </id>
...
        <property name="commentaire" column="commentaire"/>
        <joined-subclass name="Langue" table="langue">
            <key column="typedicoid"/>
            <property name="langueid" column="langueid" insert="false" update="false"/>   
            <property name="typedico" column="typedico" type="boolean"/>     
        </joined-subclass>
        <joined-subclass name="Motif_refus" table="motif_refus">           
            <key column="typedicoid"/>
            <property name="motifrefusid" column="motifrefusid" insert="false" update="false"/> 
            <property name="typedico" column="typedico" type="boolean"/>     
        </joined-subclass>
        <joined-subclass name="Option" table="option">
            <key column="typedicoid"/>
            <property name="optionid" column="optionid" insert="false" update="false"/> 
            <property name="typedico" column="typedico" type="boolean"/>
            <property name="type" column="type"/>
            <property name="description" column="description"/>
            <property name="montant" column="montant"/>
            <property name="unite" column="unite"/>
            <property name="tva" column="tva"/>
        </joined-subclass>
        <joined-subclass name="Ville" table="ville">
            <key column="typedicoid"/>
            <property name="villeid" column="villeid" insert="false" update="false"/> 
            <property name="codepostal" column="codepostal"/>
        </joined-subclass>
        <joined-subclass name="Theme" table="theme">
            <key column="typedicoid"/>
            <property name="themeid" column="themeid" insert="false" update="false"/> 
            <property name="typedico" column="typedico" type="boolean"/>
            <property name="image" column="image"/>   
        </joined-subclass>
        <joined-subclass name="Paragraphe" table="paragraphe">
            <key column="typedicoid"/>
            <property name="paragrapheid" column="paragrapheid" insert="false" update="false"/>
            <property name="typedico" column="typedico" type="boolean"/>
            <property name="type" column="type"/>
            <property name="titre" column="titre"/>     
        </joined-subclass>
        <joined-subclass name="Lieu" table="lieu">
            <key column="typedicoid"/>
            <property name="lieuid" column="lieuid" insert="false" update="false"/>   
            <property name="typedico" column="typedico" type="boolean"/>       
        </joined-subclass>
        <joined-subclass name="Service" table="service">
            <key column="typedicoid"/>
            <property name="serviceid" column="serviceid" insert="false" update="false"/>
            <property name="typedico" column="typedico" type="boolean"/>
            <property name="description" column="description"/>
            <property name="compris" column="compris" type="boolean"/>   
        </joined-subclass>
        <joined-subclass name="Groupe" table="groupe">
            <key column="typedicoid"/>
            <property name="groupeid" column="groupeid" insert="false" update="false"/>
            <property name="typedico" column="typedico" type="boolean"/>
        </joined-subclass>       
        <joined-subclass name="Composant" table="composant">
            <key column="typedicoid"/>
            <property name="composantid" column="composantid" insert="false" update="false"/>
            <property name="typedico" column="typedico" type="boolean"/>
            <property name="statut" column="statut"/>
            <property name="type" column="type"/>
            <property name="duree" column="duree" type="java.util.GregorianCalendar"/>
            <property name="debut" column="debut" type="java.util.GregorianCalendar"/>
            <property name="description" column="description"/>
            <property name="descriptionsimple" column="descriptionsimple"/>
            <property name="prix" column="prix"/>     
            <set name="paragraphes" table="paragraphes">
                <key column="composantid"/>
                <many-to-many class="Paragraphe"/>
            </set>
            <set name="services" table="services">
                <key column="composantid"/>
                <many-to-many class="Service"/>
            </set>
            <set name="themes" table="themes">
                <key column="composantid"/>
                <many-to-many class="Theme"/>
            </set>
            <set name="options" table="options">
                <key column="composantid"/>
                <many-to-many class="Option"/>
            </set>
            <set name="conditions" table="conditions">
                <key column="composantid"/>
                <many-to-many class="Condition"/>
            </set>
            <set name="lieux" table="lieux">
                <key column="composantid"/>
                <many-to-many class="Lieu"/>
            </set>
        </joined-subclass>       


voici le code SQL qui me permet de créer mes tables

Code:
CREATE TABLE typedico
(
  typedicoid integer NOT NULL DEFAULT nextval('serie'::regclass),
  nom text,
  commentaire text,
  CONSTRAINT pk_typedico PRIMARY KEY (typedicoid)
)
CREATE TABLE composant
(
  composantid integer NOT NULL DEFAULT nextval('serie'::regclass),
  typedicoid integer,
  typedico boolean,
  statut text,
  "type" text,
  duree timestamp without time zone,
  debut timestamp without time zone,
  description text,
  descriptionsimple text,
  prix text,
  CONSTRAINT pk_composant PRIMARY KEY (composantid),
  CONSTRAINT fk_composan_composant_typedico FOREIGN KEY (typedicoid)
      REFERENCES typedico (typedicoid) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT
)
...

toutes les classes filles ont comme clés étrangère typedicoid quand j'exécute le code suivant pour insérer un nouveau groupe à un Utilisateur

Code:
  BeanUtils.copyProperties(utilisateur, fillform.getUtilisateur());
                BeanUtils.copyProperties(utilisateur.getAuthentification(), fillform.getUtilisateur().getAuthentification());
                new HibernateDAO().insert(utilisateur);
                for (int dI = 0; dI < fillform.getIdentifiants().length; dI++) {
                    groupe = (Groupe) new HibernateDAO().find(new Groupe(), new Integer(fillform.getIdentifiants(dI)));
                    utilisateur.addGroupes(groupe);
                }       
                form.reset(mapping, request);
                return mapping.findForward("utilisateur");


voici la sortie affichée par hibernate

Code:
Hibernate: /* insert com.myapp.exploreoffre.javabeans.Authentification */ insert into authentification (identifiant, password, authentificationid) values (?, ?, ?)
Hibernate: /* insert com.myapp.exploreoffre.javabeans.Utilisateur */ insert into personne (nom, prenom, email, telephone, fax, gsm, personneid) values (?, ?, ?, ?, ?, ?, ?)
Hibernate: /* insert com.myapp.exploreoffre.javabeans.Utilisateur */ insert into utilisateur (initiale, authentificationid, personneid) values (?, ?, ?)
Hibernate: /* load com.myapp.exploreoffre.javabeans.Groupe */ select groupe0_.typedicoid as typedicoid6_0_, groupe0_1_.nom as nom6_0_, groupe0_1_.commentaire as commenta3_6_0_, groupe0_.groupeid as groupeid15_0_, groupe0_.typedico as typedico15_0_ from groupe groupe0_ inner join typedico groupe0_1_ on groupe0_.typedicoid=groupe0_1_.typedicoid where groupe0_.typedicoid=?
Hibernate: /* load com.myapp.exploreoffre.javabeans.Groupe */ select groupe0_.typedicoid as typedicoid6_0_, groupe0_1_.nom as nom6_0_, groupe0_1_.commentaire as commenta3_6_0_, groupe0_.groupeid as groupeid15_0_, groupe0_.typedico as typedico15_0_ from groupe groupe0_ inner join typedico groupe0_1_ on groupe0_.typedicoid=groupe0_1_.typedicoid where groupe0_.typedicoid=?
Hibernate: /* load com.myapp.exploreoffre.javabeans.Groupe */ select groupe0_.typedicoid as typedicoid6_0_, groupe0_1_.nom as nom6_0_, groupe0_1_.commentaire as commenta3_6_0_, groupe0_.groupeid as groupeid15_0_, groupe0_.typedico as typedico15_0_ from groupe groupe0_ inner join typedico groupe0_1_ on groupe0_.typedicoid=groupe0_1_.typedicoid where groupe0_.typedicoid=?
Hibernate: /* load com.myapp.exploreoffre.javabeans.Groupe */ select groupe0_.typedicoid as typedicoid6_0_, groupe0_1_.nom as nom6_0_, groupe0_1_.commentaire as commenta3_6_0_, groupe0_.groupeid as groupeid15_0_, groupe0_.typedico as typedico15_0_ from groupe groupe0_ inner join typedico groupe0_1_ on groupe0_.typedicoid=groupe0_1_.typedicoid where groupe0_.typedicoid=?

les groupes séléctionnés dans la jsp sont bien chargés par hibernate mais la mis à jours dans la DB ne se fait pas la table Groupes qui contient les ID des utilisateurs et de leur groupe ne se met pas à jours, si quelqu'un peu m'aider. Merci.


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

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.