Смешивание таблицы по подклассу и иерархии в спящем режиме - PullRequest
2 голосов
/ 17 мая 2010

В моей базе данных есть две три таблицы. Первый, таблица РЕЗЮМЕ , содержит три столбца

id, type, someText

Эта таблица содержит всю абстрактную информацию для абстрактного класса abstract . Теперь две таблицы CONCRETEONE и CONCRETETWO содержат всю информацию для конкретных классов concreteOne и concreteTwo . Теперь я знаю, что могу использовать стратегию таблицы на подкласс из hibernate, чтобы создать отображение с наследованием. Но так как у меня есть столбец, который отмечает тип конкретной реализации, возможно ли создать смешанное поведение, например стратегию таблицы на подкласс, с дискриминатором?

1 Ответ

2 голосов
/ 17 мая 2010

Стратегии отображения наследования Hibernate следует выбирать на основе структуры базы данных.

Если вы не можете изменить дизайн базы данных, то придерживайтесь лучшей стратегии для текущего дизайна БД. Т.е. таблица по стратегии подкласса.

Если вы можете изменить дизайн базы данных, то сначала забудьте о Hibernate, сосредоточившись на том, какой дизайн таблицы БД лучше для вашего приложения. Некоторые факторы, которые следует учитывать, а) Как данные будут получены / использованы? Скажем, если большую часть времени логика не касается разграничения CONCRETEONE и CONCRETETWO, то нет смысла переходить на подстолы. б) Сколько дополнительных столбцов требуется для CONCRETEONE и CONCRETETWO? Если у вас так много столбцов, специфичных для вложенных таблиц, то «Таблица для иерархии классов» не очень хорошая идея. c) Столбцы, относящиеся к подстолям, не должны быть "NOT-NULL".

Надеюсь, это поможет.

...