Especificar herencia de entidad

Una entidad puede heredar propiedades de otras entidades. Puede especificar una estrategia específica a utilizar para la herencia.

Utilice este procedimiento para especificar herencia (@Inheritance) para una entidad existente (@Entity):

  1. Seleccione la entidad en el Explorador de proyectos.

  2. En la vista Detalles de JPA, seleccione la información de Herencia.

    Especificar herencia

    Seleccionar el área Herencia en la vista Detalles de JPA.
  3. En la lista Estrategia, seleccione una de las estrategias de herencia siguientes:

    • Tabla única (valor predeterminado)

    • Tabla unida

    • Una tabla por clase

  4. Utilice la tabla siguiente para cumplimentar los campos restantes en la pestaña. Consulte "Información de herencia" para obtener más detalles.

    Propiedad Descripción Valor predeterminado
    Columna Discriminador Nombre de la columna de discriminador al utilizar una estrategia de herencia Única o Unida.

    Este campo corresponde a la anotación @DiscriminatorColumn.


    Tipo de discriminador Establezca el tipo de discriminador en Char o Integer (en lugar de en el valor predeterminado: String). El Valor discriminador debe ajustarse a este tipo. String
    Valor discriminador Especifique el valor discriminador utilizado para diferenciar una entidad en esta jerarquía de herencia. El valor debe ajustarse al Tipo de discriminador especificado.

    Este campo corresponde a la anotación @DiscriminatorValue.


    Alterar temporalmente valor predeterminado Utilice este campo para especificar las columnas de unión de clave primaria personalizada.

    Este campo corresponde a la anotación @PrimaryKeyJoinClumn.



Eclipse añade las anotaciones siguientes al campo de entidad:

@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>")

Las figuras siguientes ilustran las diferentes estrategias de herencia.

Herencia de tabla única

Esta figura ilustra la herencia de entidad en una tabla única.

Herencia de tabla unida

Esta figura ilustra una estrategia de herencia de subclase unida.

 

Tarea relacionada

Añadir persistencia a una clase

 

Concepto relacionado

Entender la persistencia Java