Почему EclipseLink добавляет столбец дискриминатора для стратегии объединенного наследования?

Я использую объединенную стратегию наследования с реализацией ECLIPSELINK JPA. Я заметил, что EclipseLink добавляет столбец дискриминатора, названный по умолчанию DTYPE, в схему базы данных. Я понимаю, что дискриминатор нужен для одной стратегии наследования таблицы, но почему для объединенной стратегии?

EclipseLink нужен этот столбец, потому что у меня есть ошибки после его удаления. Добавляется ли этот столбец по соображениям производительности и т. д.? Я не особенно рад этому, так как от с точки зрения схемы базы данных этот столбец является просто ненужным беспорядком.

спящий режим на основе JPA не делает ничего подобного.

1 ответов


с Наследование Присоединенной Таблицы:

в наследовании объединенной таблицы каждый класс разделяет данные из корневой таблицы. Кроме того, каждый подкласс определяет свой собственная таблица, которая добавляет свой расширенный государство. В следующем примере показано два таблицы, проект и L_PROJECT, а также как два класса, Project и LargeProject:

...

столбец дискриминатора определяет тип и, следовательно, какую объединенную таблицу вам нужен столбец дискриминатора в родительской таблице.