Подкласс или Наследование, какой путь лучше всего использовать Hibernate HBM?
Может кто-нибудь поделиться со мной лучшим подходом для этого вопроса ниже, используя hibernate hbm файлы?
Допустим, у меня есть 2 класса "Транспортное средство", "Автомобиль" и 2 таблицы "Транспортные средства" и "Автомобиль". Транспортные средства, имеющие общие поля, которые предполагается иметь для каждого автомобиля, автобуса и т. Д.
Я пытаюсь создать DomainObject for Car:
Автомобиль расширяет автомобиль? Если да, может кто-нибудь поделиться со мной, как объявить класс Vehicle в файлах Car hbm, и обе данные будут сохранены, когда объект Car будет сохранен?
У меня могут быть отдельные файлы размером 2 hbm (автомобиль, транспортное средство), и в классе Car я могу объявить класс (личное транспортное средство) и сконструировать этот объект как часть класса Car и сохранить класс Car с помощью каскада.
Может кто-нибудь подсказать, какой подход будет хорошим? Мне нужно хранить данные в обеих таблицах.
1 ответ
Разница между использованием одной таблицы или двух в значительной степени предпочтительна, но я бы учел следующее:
- Если вы когда-нибудь захотите запросить все транспортные средства любого типа
- Сколько атрибутов будет общим (унаследованным) для всех типов транспортных средств
- Сколько транспортных средств вы говорите (если их много, отдельная таблица может быть быстрее)
Если вы хотите сделать это с одной таблицей, то вы можете использовать поле дискриминатора ( как описано на этой странице), чтобы определить, какой подкласс является записью. Вот документация Hibernate.