La colonne de discriminateur elle-même est utilisée pour faire la distinction entre différentes classes lorsque les hiérarchies de classes sont mappées à plat ou verticalement. L’idée derrière le mappage plat et vertical est que chaque classe est mappée sur une seule ligne dans la table de classe de base. La valeur du discriminateur est utilisée pour définir le type de chaque ligne.
Comment trouvez-vous la colonne discriminante ?
La définition de l’entité : @Entity(name=”Port”) @DiscriminatorColumn(name=”type”, discriminatorType=DiscriminatorType. STRING, length=10) @DiscriminatorValue(value=”port”) @Table(name=”vPorts”) @XmlRootElement(name=”port”) public class PortEntity {
Qu’est-ce qu’un discriminateur en Java ?
Type d’annotation DiscriminatorColumn Spécifie la colonne de discrimination pour les stratégies de mappage d’héritage SINGLE_TABLE et JOINED. La stratégie et la colonne de discriminateur ne sont spécifiées qu’à la racine d’une hiérarchie ou d’une sous-hiérarchie de classes d’entités dans laquelle une stratégie d’héritage différente est appliquée.
Quelle est l’utilisation de la colonne discriminateur dans Hibernate?
Si vous souhaitez utiliser cette stratégie avec JPA, votre table de base de données doit avoir une colonne discriminante. La valeur dans cette colonne identifie la classe d’entités à laquelle chaque enregistrement doit être mappé. Par défaut, Hibernate utilise la même approche.
A quoi sert @DiscriminatorColumn ?
Le discriminateur est couramment utilisé dans l’héritage SINGLE_TABLE car vous avez besoin d’une colonne pour identifier le type d’enregistrement. Exemple : Vous avez une classe Student et 2 sous-classes : GoodStudent et BadStudent.