Hibernate - Должен ли я использовать дискриминатор? - PullRequest
0 голосов
/ 22 августа 2011

Я использую таблицу для каждого подкласса, чтобы отобразить некоторые данные, используя hibernate.Обычно на уровне базы данных я бы вводил столбец типа в абстрактной таблице и его подтаблицы, что обеспечило бы, что абстрактная запись может относиться только к подзаписи соответствующего типа.Однако, глядя на различные ресурсы, можно утверждать, что дискриминатор гибернации используется для устаревших баз данных.Значит ли это, что я выбрал неправильный подход?

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Таблица для каждого (под) класса означает, что у вас есть одна таблица на класс и нет абстрактной таблицы.Таким образом, дискриминатор не нужен.Если у вас наследование Single Table или Joined, то вам понадобится дискриминатор.

Edit: фактически, Hibernate Table Per Subclass представляется стратегией наследования JoinedОднако это указано в документации:

Реализация таблицы Hibernate для каждого подкласса не требует столбца дискриминатора.

1 голос
/ 22 августа 2011

Как указано выше, таблица Hibernate для каждого подкласса не требует дискриминатора.

По данным того же источника: «... Если вы хотите использовать столбец дискриминатора со стратегией таблицы для подкласса, вы можете объединить использование подкласса и объединения ...»

См. Раздел 9.1.3 в http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html#inheritance-tablepersubclass

...