Подкласс или Наследование, какой путь лучше всего использовать Hibernate HBM?

Может кто-нибудь поделиться со мной лучшим подходом для этого вопроса ниже, используя hibernate hbm файлы?

Допустим, у меня есть 2 класса "Транспортное средство", "Автомобиль" и 2 таблицы "Транспортные средства" и "Автомобиль". Транспортные средства, имеющие общие поля, которые предполагается иметь для каждого автомобиля, автобуса и т. Д.

Я пытаюсь создать DomainObject for Car:

  1. Автомобиль расширяет автомобиль? Если да, может кто-нибудь поделиться со мной, как объявить класс Vehicle в файлах Car hbm, и обе данные будут сохранены, когда объект Car будет сохранен?

  2. У меня могут быть отдельные файлы размером 2 hbm (автомобиль, транспортное средство), и в классе Car я могу объявить класс (личное транспортное средство) и сконструировать этот объект как часть класса Car и сохранить класс Car с помощью каскада.

Может кто-нибудь подсказать, какой подход будет хорошим? Мне нужно хранить данные в обеих таблицах.

1 ответ

Разница между использованием одной таблицы или двух в значительной степени предпочтительна, но я бы учел следующее:

  • Если вы когда-нибудь захотите запросить все транспортные средства любого типа
  • Сколько атрибутов будет общим (унаследованным) для всех типов транспортных средств
  • Сколько транспортных средств вы говорите (если их много, отдельная таблица может быть быстрее)

Если вы хотите сделать это с одной таблицей, то вы можете использовать поле дискриминатора ( как описано на этой странице), чтобы определить, какой подкласс является записью. Вот документация Hibernate.

Другие вопросы по тегам