-->
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: Problème de mapping II
PostPosted: Wed Jul 06, 2005 12:11 pm 
Newbie

Joined: Wed Jul 06, 2005 11:46 am
Posts: 2
Bonjour à tous,

tou d'abord désolé pour le "problème de mapping" vide...J'ai dérapé! Je suis un nouvel utilisateur d'hibernate et après un démarrage rapide, je suis confronté à quelques problèmes de mapping. Je vous remercie à l'avance de l'aide que vous pourrez m'apporter car là je coince méchamment.

J'ai une classe abstraite BasicObject (ac, shortlabel, fullname), dont héritent deux objets eux-mêmes abstraits CvObject(objclass) et EventObject(title, date, duration, durationUnit).

J'ai deux classes persistentes :
1. CvDurationUnit qui hérite de CvObject.
2. Edito qui hérite de EventObject.

En base j'ai deux tables : Edito et ControlledVacabulary (pour stocké le vocabulaire contrôlé donc les unités de durées (CvDurationUnit)).

De plus Edito est relié à CvDurationUnit par une relation 1 à n. En effet un Edito à une unité de durée et une unité de durée peut être liée à n edito.

Je coince au niveau du mapping et notamment pour la représentation des classes abstraites.

Le mapping que j'ai fait est le suivant :

Code:
<hibernate-mapping>
   <class name="unpasdecote.web.site.model.BasicObject">
      <id name="ac" type="long" column="AC">
           <generator class="sequence">
                <param name="sequence">updc_ac</param>
           </generator>
        </id>
      <property name="shortLabel" type="string" column="shortlabel"/>
       <property name="fullName" type="text" column="fullname"/>
      <union-subclass name="unpasdecote.web.site.model.EventObject">
         <property name="title" type="string"/>
         <property name="date" type="timestamp" column="EVENTDATE"/>
         <property name="duration" type="integer" not-null="false" column="EVENTDURATION"/>
         <many-to-one name="durationUnit"
              class="unpasdecote.web.site.model.CvDurationUnit"
            column="EVENTDURATIONUNIT"
             not-null="true"/>
         <union-subclass name="unpasdecote.web.site.model.Edito" table="UPDC_EDITO">
             <property name="content" type="text" not-null="false"/>
            <property name="author" type="string" not-null="false"/>
            <property name="image" type="binary" not-null="false"/>
          </union-subclass>
       </union-subclass>
      <union-subclass name="unpasdecote.web.site.model.CvObject">
          <property name="objClass" type="text" column="objclass"/>
         <union-subclass name="unpasdecote.web.site.model.CvDurationUnit" table="updc_controlledvocab">
            <property name="ac" type="long" column="AC" insert="false" update="false"/>
         </union-subclass>
       </union-subclass>
   </class>
</hibernate-mapping>



Ca ne marche pas pour la mise à jour de la clef étrangère (durationUnit) dans la table Edito. L'erreur généré est :

illegalargumentexception occured colling getter unpasdecote.web.site.model.BasicObject.ac

Merci de votre aide. Si j'ai pas été clair, n'hésitez pas à me le dire.

Ciao
David


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 08, 2005 8:08 am 
Regular
Regular

Joined: Tue May 03, 2005 8:19 am
Posts: 53
Location: Paris
Je n'ai pas approfondi ton problème, mais n'y a t'il pas une collision entre les deux membres ac de CvDurationUnit:
Code:
<id name="ac" type="long" column="AC">
           <generator class="sequence">
                <param name="sequence">updc_ac</param>
           </generator>
</id>

et
Code:
<union-subclass name="unpasdecote.web.site.model.CvDurationUnit" table="updc_controlledvocab">
            <property name="ac" type="long" column="AC" insert="false" update="false"/>
</union-subclass>


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jul 08, 2005 9:56 am 
Newbie

Joined: Wed Jul 06, 2005 11:46 am
Posts: 2
lauvigne wrote:
Je n'ai pas approfondi ton problème, mais n'y a t'il pas une collision entre les deux membres ac de CvDurationUnit:
Code:
<id name="ac" type="long" column="AC">
           <generator class="sequence">
                <param name="sequence">updc_ac</param>
           </generator>
</id>

et
Code:
<union-subclass name="unpasdecote.web.site.model.CvDurationUnit" table="updc_controlledvocab">
            <property name="ac" type="long" column="AC" insert="false" update="false"/>
</union-subclass>

Quote:
Bonjour et merci de ta réponse...En fait non il n'y a pas de collision car les propriétés insert="false" et update="false" de la balise property indique qu'il s'agit de l'ac du BasicObject...En fait, je viens de trouver la solution et l'erreur ne provenait pas du mapping mais d'un oubli d'instanciation d'objet. En bref, ce mapping fonctionne même si il peut sans doute être optimisé. Je suis ouvert à vos remarques et propositions.

Ciao


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.