Настройка наследования сущностей

Сущность может наследовать свойства из других сущностей. Стратегию наследования можно настроить.

Далее описана процедура настройки наследования (@Inheritance) для существующей сущности (@Entity):

  1. Выберите сущность на панели Структура проектов.

  2. В панели Сведения JPA выберите вкладку Наследование.

    Настройка наследования

    Сведения JPA - Наследование.
  3. В списке Стратегия выберите одну из стратегий наследования:

    • Одна таблица (по умолчанию)

    • Соединение таблиц

    • Одна таблица для каждого класса

  4. Заполните оставшиеся поля согласно этой таблице. Дополнительная информация приведена в разделе Информация о наследовании.

    Свойство Описание По умолчанию
    Столбец дискриминатора Имя столбца дискриминатора при использовании стратегии наследования Одна таблица или Соединение таблиц.

    Это поле соответствует аннотации @DiscriminatorColumn.


    Тип дискриминатора Укажите тип дискриминатора: Char или Integer (вместо значения по умолчанию String). Этому типу должно соответствовать Значение дискриминатора. String
    Значение дискриминатора Укажите дискриминатор для различения сущности в структуре наследования. Это значение должно соответствовать типу дискриминатора.

    Это поле соответствует аннотации @DiscriminatorValue.


    Переопределить значение по умолчанию Указывает пользовательский первичный ключ для соединения столбцов.

    Это поле соответствует аннотации @PrimaryKeyJoinClumn.



В поле сущности будут добавлены следующие аннотации:

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

На следующем рисунке показаны различные стратегии наследования.

Одна таблица

Стратегия наследования - одна таблица.

Соединение таблиц

На этом рисунке показана стратегия наследования объединенных подклассов.

 

Связанные задачи

Добавление хранения объектов в класс

 

Связанные концепции

Хранение объектов Java