Исключение временного объекта NHibernate - PullRequest
1 голос
/ 20 июля 2011

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

Таблица EmployeebyProject: { PK: EmployeeId , PK: ProjectId , DateBegin, DateEnd}

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

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

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

enter code here

Как можно избежать этой проблемы?

1 Ответ

1 голос
/ 20 июля 2011

Объект с точки зрения гибернации может находиться в нескольких состояниях - переходный, прикрепленный, отсоединенный ... Переходный означает объект, который еще не был сохранен в базе данных.Если у меня есть отношение A-> B, вам нужно сохранить B, чтобы сохранить A (потому что в спящем режиме нужно знать, что вставить внешний ключ A в B).

Итак, 2 варианта:

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