Transiend Exception NHibernate - PullRequest
       2

Transiend Exception NHibernate

0 голосов
/ 20 июля 2011

У меня есть 3 таблицы:

Сотрудник {PK: EmployeeId, имя, фамилия} Проект {PK: ProjectId, имя, описание}

EmployeebyProject { PK: EmployeeId : int, PK: ProjectId : Project, DateBegin: int, DateEnd: DateTime}

Мне нужно сделать несколько CRUD в этой таблице.

сейчас мне нужно вставитьКстати, в программном обеспечении в nhibernate класс EmployeebyProject имеет объект Employee и Project вместо EmployeeId и ProjectId.

Это отображение

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="AdminProject"
                   namespace="AdminProject.Business.Entity">

  <class name="EmployeebyProject">

    <composite-id>
      <key-many-to-one name="Employee" column="EmployeeId"  class="Employee"></key-many-to-one>
      <key-many-to-one name="Project" column="ProjectId"  class="Project" ></key-many-to-one>
    </composite-id>


    <property name="DateBegin"/>
    <property name="DateEnd"/>

  </class>

</hibernate-mapping>

Проблема заключается в том, когда я пытаюсьсохранить происходит исключение NHibernate.TransientObjectException.Как я могу избежать этого?

1 Ответ

0 голосов
/ 20 июля 2011

TransientObjectException означает, что вы сказали Hibernate сохранить какой-либо объект, но этот объект ссылается на другой объект, который вы не сохранили. Обычно это можно исправить двумя способами:

  1. Вручную сохраните другой объект до того, как транзакция будет завершена.
  2. Добавьте каскадное к отношению, чтобы при сохранении первого объекта сохранялся и другой объект, просто ссылки на него из первого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...