Встречается на собеседованиях • сегодня

Какие знаешь стратегии наследования в Hibernate

Hibernate поддерживает несколько стратегий наследования, каждая из которых имеет свои особенности:

  1. SINGLE_TABLE (по умолчанию) – все сущности хранятся в одной таблице с дискриминатором (столбец DTYPE).
    java
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
    @DiscriminatorColumn(name = "type")
  1. JOINED – для каждого класса создается отдельная таблица, а общие поля выносятся в родительскую.

    java
    @Inheritance(strategy = InheritanceType.JOINED)
  2. TABLE_PER_CLASS – для каждого класса создается отдельная таблица, включая все поля родителя. Может вызывать проблемы с полиморфными запросами.

    java
    @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)

Плюсы SINGLE_TABLE:

  • Простота и производительность (нет JOIN).

Минусы:

  • NULL-значения для неиспользуемых полей.

JOINED – нормализованная схема, но требует JOIN-ов.
TABLE_PER_CLASS – избегает JOIN, но дублирует поля и усложняет запросы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы