Specifying entity inheritance

An entity may inherit properties from other entities. You can specify a specific strategy to use for inheritance.

Use this procedure to specify inheritance (@Inheritance) for an existing entity (@Entity):

  1. Select the entity in the Project Explorer.

  2. In the JPA Details view, select the Inheritance information.

    Specifying Inheritance

    Selecting the Inheritance area on the JPA Details view.
  3. In the Strategy list, select one of the following the inheritance strategies:

    • A single table (default)

    • Joined table

    • One table per class

  4. Complete the fields in the Inheritance area.

    Use the following table to complete the remaining fields on the tab. See "Inheritance" for additional details.

Eclipse adds the following annotations the entity field:

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

The following figures illustrates the different inheritance strategies.

Single Table Inheritance

This figure illustrates entity inheritance in a single table.

Joined Table Inheritance

This figure illustrates a joined subclass inheritance strategy.

Related reference

Related concepts