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