Встречается на собеседованиях • сегодня
Как передать родительский и дочерний классы с полями в базу данных
Для хранения иерархии классов в БД есть 3 основных подхода:
- Единая таблица (Single Table)
Все поля родителя и наследников в одной таблице с дискриминатором:
java
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type")
class Parent {
@Id Long id;
String parentField;
}
@Entity
@DiscriminatorValue("CHILD")
class Child extends Parent {
String childField;
}- Таблица на класс (Joined Table)
Отдельные таблицы для каждого класса с JOIN:
java
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
class Parent {
@Id Long id;
String parentField;
}
@Entity
class Child extends Parent {
String childField;
}- Таблица на конкретный класс (Table per Class)
Каждый класс хранится в своей таблице без связи:
java
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
class Parent {
@Id Long id;
String parentField;
}
@Entity
class Child extends Parent {
String childField;
}Выбор зависит от структуры данных и требований к производительности. Single Table проще, но может содержать NULL-поля, Joined Table нормализован, но требует JOIN-ов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы