Hibernate: Как я могу объединить 2 класса в одной таблице? - PullRequest
0 голосов
/ 27 января 2010

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

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

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

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

Могу ли я использовать @ JoinTable тоже?

Ответы [ 2 ]

5 голосов
/ 27 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...