Bonjour,
je suis en train de mapper un graphe d'objet avec Hibernate et j'emploie à un moment des interfaces. Voici mon problème :
J'ai une classe Page qui contient un HasSet d'interface "ElementPage". C'est une relation one-to-many :
Code:
class Page
{
......
private Set<ElementPage> elementPages = new ....()
}
interface ElementPage {....}
J'ai trois classes "Champ", "Bloc" et "Texte" qui implementent l'interface "ElementPage" :
Code:
class Champ implements ElementPage
{
.......
private Page page;
}
class Bloc implements ElementPage
{
.......
private Page page;
}
class Texte implements ElementPage
{
.......
private Page page;
}
Mon fichier de mapping pour la classe "Page" est le suivant :
Code:
<hibernate-mapping ....>
<class name="Page" table="t_page" >
..............
<set name="elementPages" inverse="true">
<key column="PAGE_ID" />
<one-to-many class="ElementPage" />
</set>
</class>
</hibernate-mapping>
Mon fichier de mapping pour la classe "Champ" est le suivant :
Code:
<hibernate-mapping ....>
<class name="Champ" table="t_champ" >
..............
<many-to-one column="PAGE_ID" name="page" class="Page" />
</class>
</hibernate-mapping>
Mon fichier de mapping pour la classe "Bloc" est le suivant :
Code:
<hibernate-mapping ....>
<class name="Bloc" table="t_bloc" >
..............
<many-to-one column="PAGE_ID" name="page" class="Page" />
</class>
</hibernate-mapping>
Mon fichier de mapping pour la classe "Texte" est le suivant :
Code:
<hibernate-mapping ....>
<class name="Texte" table="t_texte" >
..............
<many-to-one column="PAGE_ID" name="page" class="Page" />
</class>
</hibernate-mapping>
En résumé, j'ai une classe "Page" qui a une association (un set) vers plusieurs "ElementPage" qui est elle même une interface implémentée par 3 autres classes. J'ai décidé de mapper ces 3 classes filles et non l'interface même.
Le framework sur lequel je développe m'indique l'erreur suivante :
Code:
Association references unmapped class: ElementPage
Il semble que j'ai créé une association vers une interface qui n'est pas mappé et que Hibernate ne gère pas cela. Je ne sais pas comment m'en sortir. Si il y a un génie d'hibernate qui peut me venir en aide, il est le bienvenu.
Merci d'avance pour vos réponses.
Xavier