La columna discriminadora en si s'utilitza per distingir entre diferents classes quan les jerarquies de classes es mapegen de manera plana o vertical. La idea que hi ha darrere del mapeig pla i vertical és que cada classe es mapeja en una sola fila a la taula de classes base. El valor del discriminador s'utilitza per definir el tipus de cada fila.
Com trobeu la columna del discriminador?
La definició de l'entitat: @Entity(name="Port") @DiscriminatorColumn(name="type", discriminatorType=DiscriminatorType. STRING, longitud=10) @DiscriminatorValue(value="port") @Table(nom="vPorts") @XmlRootElement(name="port") classe pública PortEntity { …
Què és el discriminador a Java?
Tipus d'anotacióDiscriminatorColumn
Especifica la columna discriminadora per a les estratègies de mapatge d'herència SINGLE_TABLE i JOINED. L'estratègia i la columna discriminadora només s'especifiquen a l'arrel d'una jerarquia o subjerarquia de classes d'entitat en què s'aplica una estratègia d'herència diferent.
Per a què serveix la columna discriminadora a Hibernate?
Si voleu utilitzar aquesta estratègia amb JPA, la vostra taula de base de dades ha de tenir una columna discriminadora. El valor d'aquesta columna identifica la classe d'entitat a la qual s'ha d'assignar cada registre. Per defecte, Hibernate utilitza el mateix enfocament.
Per a què serveix @DiscriminatorColumn?
Discriminator éss'utilitza habitualment a l'herència SINGLE_TABLE perquè necessiteu una columna per identificar el tipus de registre. Exemple: tens una classe d'estudiant i 2 subclasses: GoodStudent i BadStudent.