A própria coluna discriminadora é usada para distinguir entre diferentes classes quando as hierarquias de classe são mapeadas de forma plana ou vertical. A ideia por trás do mapeamento plano e vertical é que cada classe seja mapeada em uma única linha na tabela de classes base. O valor discriminador é usado para definir o tipo de cada linha.
Como você encontra a coluna discriminadora?
A definição da entidade: @Entity(name="Port") @DiscriminatorColumn(name="type", discriminatorType=DiscriminatorType. STRING, length=10) @DiscriminatorValue(value="port") @Table(name="vPorts") @XmlRootElement(name="port") public class PortEntity { …
O que é discriminador em Java?
Tipo de anotação DiscriminatorColumn
Especifica a coluna discriminadora para as estratégias de mapeamento de herança SINGLE_TABLE e JOINED. A estratégia e a coluna discriminadora são especificadas apenas na raiz de uma hierarquia ou subhierarquia de classe de entidade na qual uma estratégia de herança diferente é aplicada.
Qual é o uso da coluna discriminadora no Hibernate?
Se você quiser usar essa estratégia com JPA, sua tabela de banco de dados precisa ter uma coluna discriminadora. O valor nesta coluna identifica a classe de entidade para a qual cada registro deve ser mapeado. Por padrão, o Hibernate usa a mesma abordagem.
Qual é o uso de @DiscriminatorColumn?
Discriminador écomumente usado na herança SINGLE_TABLE porque você precisa de uma coluna para identificar o tipo do registro. Exemplo: você tem uma turma Student e 2 subclasses: GoodStudent e BadStudent.
