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 verticale. 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 du discriminateur ?
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 ?
Annotation Type DiscriminatorColumn
Spécifie la colonne de discriminateur 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.
À quoi sert la colonne de 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.
À quoi sert @DiscriminatorColumn ?
Le discriminateur estcouramment 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.