Спящий режим:Как я могу объединить 2 класса за одним столом?

StackOverflow https://stackoverflow.com/questions/2145234

  •  23-09-2019
  •  | 
  •  

Вопрос

Итак, я новичок в Hibernate, и у меня возникла проблема.

У меня есть абстрактный класс (суперкласс, класс Super) и 5 ​​подклассов, которые должны использовать свойства класса Super и добавлять новые свойства (новый столбец).

Итак, как я могу это сделать?Должен ли я расширить класс Super из Java или достаточно объединить классы с помощью аннотации JPA.

Вот вторая проблема.Как мне иметь 1 стол на 2 класса.Кто-то (умнее меня) посоветовал мне использовать @JoinTable, но формируя поиск с помощью Google, я думаю, мне нужно использовать @Inheritance(strategy=InheritanceStrategy.JOINED)

Могу ли я использовать @JoinTable слишком?

Нет правильного решения

Другие советы

У вас случай наследования:

  1. добавить @Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE) аннотация к вашему Super
  2. добавить @DiscriminatorColumn аннотация (и установка ее атрибутов name и discriminatorType) (опять же о Super)
  3. по каждому подклассу extend тот Super, и добавьте аннотацию @DiscriminatorValue, с разным значением для каждого из подклассов.

Если вы новичок в Hibernate, вам следует прочитать его документация. Объясняются стратегии наследования здесь и объясняется использование аннотаций для выражения стратегии наследования. здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top