как отобразить коллекцию один-ко-многим в объединенный подкласс, когда ключ находится в родительском классе - PullRequest
2 голосов
/ 21 декабря 2009

Я бы хотел сопоставить коллекцию один ко многим с подклассом, но ключ коллекции - это атрибут родительского класса.

В настоящее время я сопоставляю классы AbstractFoo Foo и Bar следующим образом:

<class name="AbstractFoo" abstract="true" table="abstractFoo">
  <id name="_id" column="foo_pk">
    <generator class="native" />
  </id>
  <many-to-one name="_bar" column="bar_fk">
  </many-to-one>
  <joined-subclass name="Foo" table="foo">
    <key column="abstractFoo_fk" />
    <property name="_type" column="type" />
  </joined-subclass>
</class>
<class name="Bar" table="bar">
  <map name="_foos" inverse="true">
    <key column="bar_fk"/>
    <map-key column="type">
    <one-to-many class="Foo" />
  </map>
</class>

На самом деле, когда я работаю с этим отображением, Hibernate пытается найти столбец bar_fk в таблице foo вместо abstractFoo.

Есть ли способ сделать такую ​​вещь?

1 Ответ

1 голос
/ 21 декабря 2009

Если я правильно понимаю ваш вопрос, то не думаю, что это возможно. Если класс Bar имеет ссылку на Foo, то FK, сгенерированный с текущей конфигурацией, является правильным. Если вы хотите, чтобы Bar имел ссылку на AbstractFoo, тогда он создаст FK для таблицы abstractFoo и позволит любому подклассу AbstractFoo быть ссылками на Bay Bar.

Обычно это действительно то, что вы хотите ... Ссылка на суперкласс. Однако, не зная о вашем дизайне, если вам действительно нужна ссылка на подкласс, тогда ваша конфигурация верна.

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