избегая дублирования временного экземпляра в nhibernate - PullRequest
0 голосов
/ 15 сентября 2010

График моей основной сущности (учетной записи) выглядит следующим образом:

Счет

  • Менеджер
  • SalesPerson
  • Торговец

Менеджер, SalesPerson и Trader относятся к типу person. Теперь при создании основного объекта (вместе с внутренним объектом) мне нужно создать нового человека, если он еще не существует. Это создает проблему, когда если один и тот же (новый) человек должен быть связан с, скажем, SalesPerson и Trader, я хочу, чтобы один и тот же временный объект, который был создан, был связан с обоими. Но вместо этого я в итоге создаю дублирующие временные экземпляры объекта Person, который создает дубликаты в системе. Как я могу избежать этого?

1 Ответ

0 голосов
/ 28 октября 2010

Можете ли вы сохранить объект Person в БД, как только вы его создадите? Тогда он будет в БД, и когда вы проверите его, вот он. Если вы используете собственный первичный ключ, nHibernate сохранит его в базе данных при вызове Save. Если вы не используете собственный первичный ключ, вам придется вызвать flush.

В качестве альтернативы, отследите недавно сохраненных людей и проверьте сначала.

...