La classe enfant doit hériter des différentes propriétés de la classe parente, qui pourront être utilisées dans les mappers, mais aussi en tant que defaultProperty, orderProperty ou flagProperty (ou même joinColumn dans les dataFlows). Ces propriétés héritées pourront également être utilisées dans des values.
Classes persistées héritées
Il existe plusieurs mode de stockage pour les objets contenant de l'héritage. Dans la plupart des cas étudiés, le mode le plus pertinent est le mode join, où chaque classe possède sa propre table, ne contenant que les informations minimum.
Ainsi :
La table correspondant à la classe parente correspond exactement à sa représentation sans héritage
La table enfant contient tous les champs qui lui sont spécifiques, mais aussi un champ qui a une contrainte de clé étrangère vers la table parente. En l'absence d'autre clé primaire dans la classe, ce champ sera sa clé primaire.
A la sauvegarde d'un objet enfant, l'ORM effectuera donc des modifications dans deux tables.
Le code écrit par les différents générateurs correspond à ce mode de fonctionnement, selon les spécificités de chacun
Héritage étendus aux mappers
La classe enfant doit hériter des différentes propriétés de la classe parente, qui pourront être utilisées dans les mappers, mais aussi en tant que
defaultProperty
,orderProperty
ouflagProperty
(ou mêmejoinColumn
dans les dataFlows). Ces propriétés héritées pourront également être utilisées dans desvalues
.Classes persistées héritées
Il existe plusieurs mode de stockage pour les objets contenant de l'héritage. Dans la plupart des cas étudiés, le mode le plus pertinent est le mode
join
, où chaque classe possède sa propre table, ne contenant que les informations minimum.Ainsi :
A la sauvegarde d'un objet enfant, l'ORM effectuera donc des modifications dans deux tables.
Le code écrit par les différents générateurs correspond à ce mode de fonctionnement, selon les spécificités de chacun