Используйте два объединенных подкласса в nhibernate - PullRequest
1 голос
/ 07 декабря 2009

Хорошо, новичок в nhibernate, и я работаю над проектом, который уже полностью его реализовал.

Scenerio: один класс (Person) имеет два объединенных подкласса (RoleA и RoleB).

Что мне нужно, так это то, что данный человек может быть как в RoleA, так и в RoleB. Как, если ему дается человек, который уже создан и в RoleA, я могу сделать его также в RoleB, поддерживая отношения с RoleA?

1 Ответ

0 голосов
/ 08 декабря 2009

Итак, у вас есть что-то вроде следующего (учащиеся и учителя заменяют RoleA и RoleB):

<class name="Person" table="Persons" >
  <id name="Id" column="PersonID">
    <generator class="native" />
  </id>
  <property name="Name" column="Name" not-null="true" />

  <joined-subclass name="Student" table="Students">
    <key column="PersonID" />
    <property name="Grade" column="Grade" not-null="true" />
  </joined-subclass>

  <joined-subclass name="Teacher" table="Teachers">
    <key column="PersonID" />
    <property name="ClassName" column="ClassName" not-null="true" />
  </joined-subclass>
</class>

Если это так, лучше всего использовать сопоставление один к одному, чтобы выполнить то же самое. Вот хорошая ссылка: http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-onetoone

У этого человека была такая же проблема, как и у вас, и в итоге он выбрал вариант отображения один-к-одному: http://groups.google.com/group/nhusers/browse_thread/thread/1d83e0cd3c2bf58f

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