JPA 2 Отображение наследования Тип JOINED или SINGLE?
У меня есть тестовый пример с тремя таблицами / классами (Language, Caption и CaptionLanguage).
Таблица Language хранит данные о языках.
В таблице подписей хранятся данные индекса подписей.
Таблица CaptionLanguage хранит данные титров для каждого языка.
Какой тип наследования я могу использовать для решения проблемы?
Если я установлю "@DiscriminatorColumn(name="ID_LANG",criminatorType=DiscriminatorType.Integer)",
с "@Inheritance(стратегии =InheritanceType.JOINED)", будет работать?
Без использования @DiscriminatorValue(value="Value")
Спасибо!
1 ответ
Это не похоже на проблему, которая может быть решена наследованием. Несмотря на имя, CaptionLanguage
не является подтипом Language
- это тоже не подтип Caption
,
Вместо этого это выглядит как три объекта со следующей характеристикой:
- один ко многим из
Language
вCaptionLanguage
(и / или обратное множество) - один ко многим из
Caption
вCaptionLanguage
(и / или, возможно, обратное много-к-одному) - много к одному от
Caption
к родителюCaption
(и / или обратное отношение один ко многим) CaptionLanguage
имеет составной первичный ключ, поэтому следует использовать @IdClass или @EmbeddedId.