Я работаю над существующей структурой данных, которая не идеальна, и мне нужно решить проблему отображения наследования.
Я использую таблицу для каждой иерархии и имею подклассы с настроенными дискриминаторами. Однако свойства подкласса являются внешними ключами для других таблиц. Как настроить отображение подкласса, чтобы при запросе свойства fk я получал объект, а не нуль? Это вообще возможно?
Мое текущее отображение
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MVC3" namespace="MVC3.Models">
<class name="Image" table="Images">
<id name="Id" column="ImageId">
<generator class="identity" />
</id>
<discriminator column="ImageType" />
<property name="Url" column="Url" not-null="true" />
<property name="Caption" column="Caption" />
<subclass name="AupairImage" discriminator-value="AupairImage">
<join table="Aupairs" inverse="true">
<key column="AupairId" />
<many-to-one name="Aupair" column="AupairId" class="Aupair" />
</join>
</subclass>
<subclass name="FamilyImage" discriminator-value="FamilyImage">
<join table="Families" inverse="true">
<key column="FamilyId" />
<many-to-one name="Family" column="FamilyId" class="Family" />
</join>
</subclass>
Я хотел бы добавить диаграмму сущностей, но пока не могу публиковать изображения :0(
Но внешние ключи AupairId и FamilyId связаны с двумя другими таблицами и имеют тип int 32.
Я знаю, что было бы лучше реструктурировать сущности Aupair и Family, чтобы иметь иерархию, чтобы избавиться от той, что на изображениях, но это было бы последним средством из-за существующего кода.
Заранее благодарим за любую помощь от вас, экспертов по картографии....