JPA 2 Отображение наследования Тип JOINED или SINGLE?

У меня есть тестовый пример с тремя таблицами / классами (Language, Caption и CaptionLanguage).

Таблица Language хранит данные о языках.
В таблице подписей хранятся данные индекса подписей.
Таблица CaptionLanguage хранит данные титров для каждого языка.

MER

Какой тип наследования я могу использовать для решения проблемы?

Если я установлю "@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.
Другие вопросы по тегам