Salut PartyBoy :)
Le sujet de l'heritage est traite ds le bouquin de G. King, Hibernate in Action (paragraphe 3.6). En resume, ton probleme est peut-etre dû a un fichier de mapping incorrect, tu as le chox entre trois strategies :
1-
Table per concrete class : la plus simple, une table par classe non-abstraite, les attributs de la classe mere abstraite sont reproduites ds toutes les tables concretes. Un desavantage majeur : ne supporte pas le polymorphisme.
Le mapping est simplissime : une nouvelle declaration <class> pour chaque classe concrete.
2-
Table per class hierarchy : l'ensemble de la hierarchie d'heritage est transcrit en une seule table, avec l'ajout d'une colonne de discriminant. C'est la meilleure approche en termes de polymorphisme, et c'est facile a implementer. Un desavantage : toutes les colonnes de la table doivent etre 'nullable'.
Le mapping utilise l'element <subclass> :
Code:
<hibernate-mapping>
<class name="" table="">
<id>
<discriminator column="" type=""/>
<property name="" column="" type=""/>
...
<subclass name="" discriminator-value="">
<property name="" column="" type=""/>
...
</subclass>
...
</class>
</hibernate-mapping>
3-
Table per subclass : chaque sous-class possede sa propre table et les relations d'heritage sont représentées par des clefs etrangeres. C'est l'approche la plus difficile mais la plus elegante et la plus extensible.
Le mapping utilise l'element <joined-subclass> :
Code:
<hibernate-mapping>
<class name="" table="">
<id>
<property name="" column="" type=""/>
...
<joined-subclass name="" table="">
<key column=""/>
<property name="" column="" type=""/>
...
</joined-subclass>
...
</class>
</hibernate-mapping>
Donc si tu modifies ton fichier de mapping BaseEmployee.hbm.xml avec un des choix precedent, cela devrait fonctionner ;)
Hope it helps
Ticker