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

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

В JPA есть 3 основные стратегии наследования:

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

Плюсы SINGLE_TABLE - производительность (нет JOIN), минусы - NULL-поля. JOINED - нормализованная структура, но медленнее из-за JOIN. TABLE_PER_CLASS - проблемы с полиморфными запросами.

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

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

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

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