Especificar a herança de uma entidade

Uma entidade pode herdar propriedades de outras entidades. É possível especificar uma determinada estratégia de herança.

Use este procedimento para especificar herança (@Inheritance) para uma entidade existente (@Entity):

  1. Seleccione a entidade no Explorador de Projectos.

  2. Na vista Detalhes da JPA, seleccione a informação relativa a Herança.

    Especificar herança

    Seleccionar a área Herança na vista Detalhes da JPA.
  3. Na lista Estratégia, seleccione uma das seguintes estratégias de herança:

    • Uma tabela única (predefinição)

    • Tabela de junção

    • Uma tabela por classe

  4. Use a seguinte tabela para preencher os campos restantes do separador. Para mais esclarecimentos, consulte a secção "Informação relativa a herança".

    Propriedade Descrição Predefinição
    Coluna do discriminador Nome da coluna do discriminador ao usar uma estratégia de herança Única ou de Junção.

    Este campo corresponde à anotação @DiscriminatorColumn.


    Tipo do discriminador Configure o tipo do discriminador para Carac ou Inteiro (em vez da predefinição: Cadeia). O Valor de descriminação tem de estar em conformidade com este tipo. Cadeia
    Valor do discriminador Especifica o valor do discriminador usado para diferenciar uma entidade na respectiva hierarquia de herança. O valor tem de estar em conformidade com o Tipo do discriminador especificado.

    Este campo corresponde à anotação @DiscriminatorValue.


    Substituir predefinição Use este campo para especificar colunas de junção de chave principal personalizadas.

    Este campo corresponde à anotação @PrimaryKeyJoinClumn.



Eclipse adiciona as seguintes anotações ao campo da entidade:

@Inheritance(strategy=InheritanceType.<INHERITANCE_STRATEGY>)
@DiscriminatorColumn(name="<DISCRIMINATOR_COLUMN>",
    discriminatorType=<DISCRIMINATOR_TYPE>)
@DiscriminatorValue(value-"<DISCRIMINATOR_VALUE>")
@PrimaryKeyJoinColumn(name="<JOIN_COLUMN_NAME>", 
    referencedColumnName = "<REFERENCED_COLUMN_NAME>")

A figura seguinte ilustra as diferentes estratégias de herança.

Herança de tabela única

Esta figura ilustra herança de entidades numa tabela única.

Herança em tabelas de junção

Esta figura ilustra uma estratégia de herança de sub-classe unida.

 

Tarefa relacionada

Dar persistência a uma classe

 

Conceito relacionado

Perceber a persistência Java